我有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