如何将此SQL查询转换为Active Record语句?

时间:2014-05-27 19:02:30

标签: sql ruby-on-rails ruby-on-rails-3 activerecord

以下是查询:

select dogs.winning_status from dogs join cats on dogs.cat_id = cat.id where cats.cat_type = 'big' and dogs.user_id = 29 order by dogs.created_at DESC limit 2;

我不知道如何将其转换为活动记录查询。我看过很多rails网站(包括this one)我根本不知道如何处理这个问题。我尝试了几次尝试,但都失败了。

1 个答案:

答案 0 :(得分:1)

如果你已经根据Rails的惯例设置了所有内容,这应该可行。

Dog.joins(:cats).select(:winning_status).where("cats.cat_type = 'big' AND dogs.user_id = 29").order(:created_at).limit(2)

或者这个

Dog.joins(:cats).select(:winning_status).where("cats.cat_type = ?", 'big').where(user_id: 29).order(:created_at).limit(2)