我不想使用纯SQL查询,但我无法处理Active Records方法。
我有类似的模型:
class Car < ActiveRecord::Base
has_many :reviews
end
和
class Review < AcriveRecord::Base
belongs_to :cars
end
现在我想获得特定汽车的所有评论。您知道我想从car_id相同的评论中选择所有记录(仅针对特定汽车的所有评论)。
我尝试使用http://guides.rubyonrails.org/active_record_querying.html,但它仍然无效。
答案 0 :(得分:2)
您可以通过以下方式获取汽车的所有评论:
@car.reviews
将您的review.rb
模型更新为:
class Review < AcriveRecord::Base
belongs_to :car # SINGULAR !
end
它将为您提供car
作为review
获取的工具:
@review.car
答案 1 :(得分:1)
只需找到您想要的汽车对象,例如
@car = Car.find(id: params[id])
然后,所有关联都可以通过名称轻松访问,无需进行查询
@reviews = @car.reviews
答案 2 :(得分:1)
这非常简单。首先获取汽车的活动记录,比如存储在变量car_id中的id
@car = Car.find(car_id)
@car.reviews #This will get you the reviews
为避免多次数据库调用,您可以使用包含
@car = Car.includes(:reviews).find(car_id)
如果您只是想要评论,那么
@reviews = Review.where(:car_id=>car_id) #provided car_id is the foreign key here