私は2つのモデルを持っています:製品(名前、価格)と注文(user_id、product_id)
次に、このクエリを application_controller.rb の関数内で実行したい
SELECT * FROM orders INNER JOIN products ON orders.product_id = products.id
ActiveRecord と Rails の関連付けでのみこれを行うことは可能ですか? モデルには何を書けばいいですか?
私は2つのモデルを持っています:製品(名前、価格)と注文(user_id、product_id)
次に、このクエリを application_controller.rb の関数内で実行したい
SELECT * FROM orders INNER JOIN products ON orders.product_id = products.id
ActiveRecord と Rails の関連付けでのみこれを行うことは可能ですか? モデルには何を書けばいいですか?
モデルは次のようになります。
class Product < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :product
belongs_to :user
end
これで、次のことができます。
Order.joins(:product).all
しかし、あなたは何を達成しようとしていますか?この無意味な結合の理由は何ですか? データベースへの追加のクエリがないように製品をプリロードするだけの場合はincludes
、結合の代わりに使用できます。