我有一個應用程序,其模型的用戶甚至可以吃飯的公司模型。ActiveRecord恢復關聯記錄
所以我有一個公司的表,一個用戶表和一個午餐桌。 午餐包含用戶的ID,並且用戶包含公司的ID。我想要所有的午餐可用於current_user.company
我想有類似Lunch.all.where(user.company == current_user.company)
。我知道這是行不通的,但我剛剛開始,並且在sql方面遇到了一些麻煩。
我有一個應用程序,其模型的用戶甚至可以吃飯的公司模型。ActiveRecord恢復關聯記錄
所以我有一個公司的表,一個用戶表和一個午餐桌。 午餐包含用戶的ID,並且用戶包含公司的ID。我想要所有的午餐可用於current_user.company
我想有類似Lunch.all.where(user.company == current_user.company)
。我知道這是行不通的,但我剛剛開始,並且在sql方面遇到了一些麻煩。
試試這個
Lunch.joins(user: :company).where(users: {company: current_user.company})
你可以做到這一點使用#joins
,或有一個更簡單的方法。在你的公司的模式
class Company
has_many :users,
has_many :lunches, through: :users
end
設置它,你會得到所有的午餐:
current_user.company.lunches
我有這樣的錯誤與您的解決方案。 ActiveRecord :: HasManyThroughSourceAssociationNotFoundError:無法找到源關聯(s)「午餐」或:在模型用戶午餐。嘗試'has_many:午餐,:通過=>:用戶,:源=>'。它是公司,午餐還是命令之一? –
你在用戶中有'has_many:午餐'嗎? – EJ2015
是的,但有拼寫錯誤(午餐=>午餐),現在它可以工作,也謝謝你,我會看到哪一個有最佳的響應時間。但非常感謝你; - ) –