ActiveModel search by association

懵懂的女人 提交于 2019-12-12 04:08:21

问题


I've seen similar questions but nothing exactly like mine. I apologize if this is a duplicate - if it is, please refer me to answer(s).

I need to search orders by customer names, and the link between the two is users. Here are my models:

class Customer < ApplicationRecord
  belongs_to :user
end

class User < ApplicationRecord
  has_one :customer
  has_many :orders
end

class Order < ApplicationRecord
  belongs_to :user
end

I'm trying to search using:

@orders = Order.joins(:user).joins(:customers).where('last_name LIKE ?', name[0])

But I get the error message -

Can't join 'Order' to association named 'customers'; perhaps you misspelled it?

I'm sure I don't have the associations right, but I'm not sure how to do it. Thanks for any advice you can provide.


回答1:


Please try this.

Order.joins(user: [:customer]).where(customer: {last_name: name[0]})

I took help from this and this



来源:https://stackoverflow.com/questions/43588263/activemodel-search-by-association

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!