模型Company
有许多Disclosure
和Statement
。
class Company < ActiveRecord::Base
has_many :disclosures
has_many :statements
end
Disclosure
和Statement
都有date
列。
Statement
有一个像这样的方法:
def disclosures
Disclosure.where(date: date, company_id: company_id)
end
工作正常。但我认为这种关系应该用has_many
符号写出来。但我找不到使用primary_key
多个has_many
的方法。
有没有办法使用多个主键?
答案 0 :(得分:0)
默认情况下,Activerecord不支持复合键,但使用以下repo,您应该能够:
github.com/composite-primary-keys/composite_primary_keys
之后你应该可以使用多个主键:
下面的一个小例子require 'composite_primary_keys'
class StringProperty < ActiveRecord::Base
self.primary_keys = :entity_id, :property_id
set_table_name "problem.string_property"
attr_accessible :entity_id, :property_id, :value
end