12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/belongs_to_hstore/association.rb', line 12
def belongs_to_hstore(store_attribute, name, options={})
self.belongs_to_hstore_attributes = self.belongs_to_hstore_attributes.dup
key = options[:foreign_key] || "#{name}_id"
key_type = key.gsub(/_id$/, '_type')
store_accessor store_attribute, key.to_s
self.belongs_to_hstore_attributes[key.to_s]= Integer
if options[:polymorphic]
store_accessor store_attribute, key_type
self.belongs_to_hstore_attributes[key_type]= String
end
belongs_to name, options
define_singleton_method("where_#{store_attribute}") do |options|
where_hstore(store_attribute, options)
end
end
|