Ruby On Rails多个复合主键问题

时间:2010-07-10 16:38:41

标签: ruby-on-rails activerecord composite-primary-key

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

  1. transaction_types:
    • TRANSACTION_TYPE
  2. transaction_headers:
    • TRANSACTION_TYPE
    • transaction_year
    • 的transaction_id
  3. transaction_details:
    • TRANSACTION_TYPE
    • transaction_year
    • 的transaction_id
    • city_id
    • ticker_id
  4. 代号:
    • city_id
    • ticker_id
  5. 当然,这些模型还有其他非主键,例如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_detail transaction_header ,但是怎么做我在 transaction_header transaction_detail 之间以及 transaction_detail ticker 之间建立关联?如何为代码关系创建:通过键?

    谢谢

1 个答案:

答案 0 :(得分:4)

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

http://compositekeys.rubyforge.org/

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

希望这有帮助!