繁体   English   中英

加入并使用其他foreign_key搜索吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM