我得到了以下模型:
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
与 coaches_coachings
一切都像魅力一样!
关于mysql - 使用不同的 foreign_key 加入并搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31878738/