Sha256: 658a9a47a5edf652f6dc38e731008d7d515514c57077c5b9aa17bfe6eeceb3fa
Contents?: true
Size: 1.08 KB
Versions: 2
Compression:
Stored size: 1.08 KB
Contents
module Jobshop class Registration < VirtualRecord memo_attr(:user) { team.users.build(user_params) } memo_attr(:team) { record = ::Jobshop::Team.find(params[:team_id]) record.assign_attributes(team_params) record.singleton_class.class_eval do validates :name, presence: true, on: :update, if: :name_changed? end record } def save return false unless valid? result = ActiveRecord::Base.transaction do user.save! team.update!(owner: user, registration_token: nil, registration_token_sent_at: nil) end result != false end private def registration_params params.fetch(:registration, ActionController::Parameters.new) end def team_params registration_params.fetch(:team, ActionController::Parameters.new) .permit(:name) end def user_params registration_params.fetch(:user, ActionController::Parameters.new) .permit(:forename, :surname, :email, :password, :password_confirmation) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jobshop-0.0.131 | app/models/jobshop/registration.rb |
jobshop-0.0.127 | app/models/jobshop/registration.rb |