我有一个数据库设置:
User has_many :cars
Car has_many :timeslips
Timeslip has_one :car
当父母:汽车有一个:user_id
时,我只需要返回:timeslips在我的控制器中,我想说这样的话:
@timeslips = Timeslip.car.where(:user_id => params[:user_id])
当满足父母条件时,返回所有孩子的最佳做法/方法是什么?我应该在模型中做一个方法吗?
答案 0 :(得分:1)
我会使用ActiveRecord加入:http://guides.rubyonrails.org/active_record_querying.html#joining-tables
@timeslips = Timeslip.joins("INNER JOIN cars on timeslips.car_id = cars.id").where("cars.user_id = ?", params[:user_id])