Sha256: a1beb97f778f98ee5348941abc491ca3bf2aede52196918e214a7b021a7d9e9a
Contents?: true
Size: 1.21 KB
Versions: 4
Compression:
Stored size: 1.21 KB
Contents
module Jobshop class Registration < VirtualRecord memo_attr(:user) { record = organization.users.build(user_params) record.singleton_class.class_eval do validates :forename, presence: true validates :surname, presence: true end record } memo_attr(:organization) { record = ::Jobshop::Organization.find(params[:organization_id]) record.assign_attributes(organization_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! organization.register_to(user) end result != false end private def registration_params params.fetch(:registration, ActionController::Parameters.new) end def organization_params registration_params.fetch(:organization, 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
4 entries across 4 versions & 1 rubygems