查询三个表只有一个表在rails中没有关联5

时间:2018-08-25 15:43:28

标签: ruby-on-rails

我在滑轨上有三个桌子

这是表格

员工 =(完全没有关联)

用户 =出席人数很多

出勤 =属于用户

然后我的问题是如何用这个查询三个表。

User表加入Attendance,然后还加入Employee,其中employee.code = users.Empkey

我如何将其转换为使用Rails 5在一个查询中联接三个表

2 个答案:

答案 0 :(得分:0)

您应该在员工和用户之间创建ActiveRecord关联。

class Employee < ApplicationRecord
  belongs_to :user, foreign_key: "code", class_name: "User"
end

class User < ApplicationRecord
  has_many :attendances
  has_one :employee, foreign_key: "Empkey", class_name: "Employee"
end

class Attendance < ApplicationRecord
  belongs_to :user
end

现在您可以随心所欲地玩耍了。

employee = Employee.first
@employee_attendances = employee.user.attendances

答案 1 :(得分:0)

您可以在连接表中使用原始sql来连接3个表,如示例中所示

User.joins(:attendances).joins("Inner joins employees on employees.code = users.Empkey")

希望这会有所帮助