1

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

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

当然,这些模型还有其他非主键,例如 customer_id、connection_id 或 date,或 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

我需要对每个对应的主键执行关系。transaction_type到transaction_detailtransaction_header很容易,但是如何在transaction_headertransaction_detail之间以及在transaction_detailticker之间创建关联?如何为代码关系创建 :through 键?

谢谢

4

1 回答 1

4

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

http://compositekeys.rubyforge.org/

他们有一个很好的入门指南。

希望这可以帮助!

于 2010-07-10T16:49:06.350 回答