Module: Enjoy::Gallery::Gallerable::ClassMethods

Defined in:
app/models/concerns/enjoy/gallery/gallerable.rb

Instance Method Summary collapse

Instance Method Details

#enjoy_gallerable_field(name = :enjoy_gallerable, opts = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/concerns/enjoy/gallery/gallerable.rb', line 5

def enjoy_gallerable_field(name = :enjoy_gallerable, opts = {})
  class_name = opts.delete(:class_name)
  class_name ||= "Enjoy::Gallery::Gallery"

  belongs_to name, polymorphic: true

  class_eval <<-EVAL
    before_save do
      self.#{name}_id = nil   if self.#{name}_type.nil?
      self.#{name}_type = nil if self.#{name}_id.nil?
      self
    end
  EVAL

end