Module: Skyline::BelongsToReferable
- Defined in:
- lib/skyline/belongs_to_referable.rb
Overview
Use this Module in in a class that references a Page/MediaFile/URL as an association.
It adds the class method belongs_to_referable. With Referable::ClassMethods#belongs_to_referable you create a
belongs_to association to an Page/MediaFile/URL through a RefObject.
class Model < ActiveRecord::Base include Skyline::BelongsToReferable
belongs_to_referable :teaser # column teaser_id must be available
end
class Model < ActiveRecord::Base after_save :possibly_destroy_previous_referables after_destroy :possibly_destroy_referables before_save :set_refering_type_and_id after_create :set_refering_id
belongs_to :teaser, :class_name => "Skyline::ObjectRef", :foreign_key => "teaser_id", :dependent => :destroy
accepts_nested_attributes_for :teaser, :reject_if => proc {|attributes| attributes['referable_type'].blank?}, :allow_destroy => true
validates_presence_of :teaser # only if options[:allow_nil] is not set
def (obj) # obj can be an ObjectRef or a Teaser, in which case it will be passed through
# ...
end
alias_method_chain :teaser=, :passthrough
end
Defined Under Namespace
Modules: ClassMethods