Module: ModelConcerns::Assignable::ClassMethods
- Defined in:
- lib/model_concerns/assignable.rb
Overview
usage has :owner, :operator
Instance Method Summary collapse
Instance Method Details
#has(*names) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/model_concerns/assignable.rb', line 7 def has(*names) names.each do |name| belongs_to name, class_name: :User scope "filter_by_#{name}", ->(user) { where("#{name}_id = :id or #{name}_no = :no", id: user.id, no: user.no) } define_method "assign_#{name}" do |user| self.send("#{name}=", user) self.send("#{name}_id=", user.id) self.send("#{name}_no=", user.no) end define_method "assign_#{name}!" do |user| self.send("assign_#{name}", user) self.save(validate: false) end end end |