Module: Fogged::HasOneResource::ClassMethods

Defined in:
lib/fogged/has_one_resource.rb

Constant Summary collapse

DEFAULT_OPTIONS =
{
  :dependent => :destroy,
  :class_name => "Fogged::Resource"
}

Instance Method Summary collapse

Instance Method Details

#has_one_resource(*args) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/fogged/has_one_resource.rb', line 11

def has_one_resource(*args)
  belongs_to :resource, DEFAULT_OPTIONS.merge(args.extract_options!)
  validate :_check_resource, :unless => "resource.blank?"

  define_method(:resource_id) do
    resource.try(:id)
  end

  define_method(:resource_id=) do |id|
    self.resource = id.blank? ? nil : Resource.find(id)
  end
end