我有2種型號:產品(名稱,價格)和令(USER_ID,PRODUCT_ID)Rails的協會和ActiveRecord的
然後我想在application_controller.rb
SELECT * FROM orders INNER JOIN products ON orders.product_id = products.id
執行內部功能,此查詢
只有使用ActiveRecord和Rails關聯才能做到這一點?我應該在模型中寫什麼?
我有2種型號:產品(名稱,價格)和令(USER_ID,PRODUCT_ID)Rails的協會和ActiveRecord的
然後我想在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
而不是聯接。
我懷疑你真的需要加入。嘗試迫切加載:
Order.includes(:product)
Btw也許你應該閱讀文檔,如果你想要使用rails。沒有冒犯性,但是你可以在官方的Rails文檔或網上的大量內容中找到這方面的所有信息。尤其是,如果您開始使用Rails Michaels Hartl Learning Rails(http://ruby.railstutorial.org/)
您是否購物車模式? –
對不起,粘貼錯誤的查詢。 – droptheplot