1

私は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

もちろん、これらのモデルには、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_headertransaction_detailの、およびtransaction_detailtickerの間の関連付けを作成するにはどうすればよいですか。ティッカー関係の:throughキーを作成する方法は?

ありがとうございました

4

1 に答える 1

4

ActiveRecordは、すぐに使用できる複合主キーをサポートしていませんが、このプラグインは次のようになります。

http://compositekeys.rubyforge.org/

彼らは始める方法についての素晴らしいガイドを持っています。

お役に立てれば!

于 2010-07-10T16:49:06.350 に答える