has_many关系的多个primary_key

时间:2017-05-22 13:03:08

标签: ruby-on-rails foreign-keys

模型Company有许多DisclosureStatement

class Company < ActiveRecord::Base
  has_many :disclosures
  has_many :statements
end

DisclosureStatement都有date列。

Statement有一个像这样的方法:

def disclosures
  Disclosure.where(date: date, company_id: company_id)
end

工作正常。但我认为这种关系应该用has_many符号写出来。但我找不到使用primary_key多个has_many的方法。

有没有办法使用多个主键?

1 个答案:

答案 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