Ruby On Rails 多个复合主键问题

Mag*_*ian 1 activerecord ruby-on-rails composite-primary-key

我是 Ruby 的新手,我有包含这些主键的表:

  1. 交易类型:
    • 交易类型
  2. 交易标头:
    • 交易类型
    • 交易年
    • 交易ID
  3. 交易明细:
    • 交易类型
    • 交易年
    • 交易ID
    • 城市ID
    • 股票代码 ID
  4. 股票代码:
    • 城市ID
    • 股票代码 ID

当然,这些模型还有其他非主键,例如 customer_id、connection_id 或日期或 user_id 等,但这些对于关系并不重要,因为这些只是数据,或者我对这些没有任何问题。

这些是我的模型:

#models  

class transaction_type < ActiveRecord::Base  
  has_many :transaction_headers, :foreign_key=>'transaction_type'  
  has_many :transaction_details, :foreign_key=>'transaction_type'
  has_many :tickers, :through=>:transaction_details
end

class transaction_header < ActiveRecord::Base  
  belongs_to: transaction_types, :foreign_key=>'transaction_type'
  has_many :transaction_details
  has_many :tickers, :through=>:transaction_details
end

class transaction_detail < ActiveRecord::Base
  belongs_to: transaction_headers
  has_many :tickers
end

class ticker < ActiveRecord::Base

end
Run Code Online (Sandbox Code Playgroud)

我需要与每个对应的主键建立关系。 transaction_typetransaction_detailtransaction_header很容易,但是如何在transaction_headertransaction_detail之间以及transaction_detailticker之间创建关联?如何为股票关系创建 :through 键?

谢谢

Geo*_*tte 5

ActiveRecord 不支持开箱即用的复合主键,但此插件应该:

http://compositekeys.rubyforge.org/

他们有关于如何开始的很好的指南。

希望这可以帮助!