ActiveRecord恢复关联记录

时间:2017-10-06 23:54:09

标签: ruby-on-rails ruby rails-activerecord

我有一个应用程序,可以为那些有用户甚至可以用餐的公司提供模型。

所以我有一张公司表,一张用户表和一张午餐桌。 午餐包含用户的ID,用户包含公司的ID。我想为current_user.company

提供所有午餐

我想要Lunch.all.where(user.company == current_user.company)之类的东西。我知道这不会起作用,但我刚刚开始,我在使用sql时遇到了一些麻烦。

2 个答案:

答案 0 :(得分:1)

试试这个

Lunch.joins(user: :company).where(users: {company: current_user.company})

答案 1 :(得分:0)

您可以使用#joins执行此操作,也可以使用更简单的方法。在公司模型中进行设置

class Company
  has_many :users,
  has_many :lunches, through: :users
end

你得到了所有的午餐:

current_user.company.lunches