Запрашивая три таблицы, только одна таблица не имеет связи в рельсах 5 - PullRequest
0 голосов
/ 25 августа 2018

У меня три таблицы в рельсах

Это таблицы

Сотрудник = (нет связи вообще)

Пользователь = имеет много посетителей

Посещаемость = принадлежит пользователю

, тогда мой вопрос, как я могу запросить три таблицы с этим.

Пользовательtable присоединяется к Attendance, затем также присоединяется к Employee, где employee.code = users.Empkey

как я могу перевести его, чтобы объединить три таблицы в одном запросе с рельсами 5

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Вы можете использовать raw sql в таблице соединений, чтобы объединить 3 таблицы, как показано в примере

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

Надеюсь, это поможет

0 голосов
/ 26 августа 2018

Вы должны создавать ассоциации 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...