[英]Join and search with a different foreign_key?
我得到以下模型:
class Coaching < ActiveRecord::Base
...
belongs_to :user
belongs_to :coach, class_name: 'User', foreign_key: 'coach_id'
...
end
现在,我想搜索用户和教练的姓氏。
我试过了:
Coaching.joins(:users, :coaches).where('users.lastname LIKE :search', search: "%#{params[:search]}%")
Coaching.joins(:users, :coaches).where('users.lastname LIKE :search OR coaches.lastname LIKE :search', search: "%#{params[:search]}%")
第一次尝试只会返回用户,第二次尝试会引发错误:
Mysql2::Error: Unknown column 'coaches.nachname' in 'where clause'
我该怎么做?
得到它了!
Coaching.joins(:user, :coach).where("users.lastname LIKE :search OR coaches_coachings.lastname LIKE :search", search: "%#{params[:search]}%")
由于某些原因,Rails称呼:coach
加入coaches_coachings
,这是我在日志中看到的原因,所以我用coaches_coachings
替换了coaches
,一切都变得很迷人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.