Как найти запись, когда столбец соответствия находится в двух таблицах? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть модель InstanceUser, которая принадлежит модели User через user_id.

User имеет несколько User::Email с.

User::Email с каждыйУ меня есть свойство электронной почты.

Учитывая адрес электронной почты, как мне найти InstanceUser, если таковой имеется, что instance_user.user.emails будет содержать User::Email с этим адресом электронной почты?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Если вы добавите has_many through в свой UserInstance:

class UserInstance < ApplicationRecord
  has_many :emails, through: :user, class_name: 'User::Email'
  belongs_to :user
  ...
end


Затем вы можете запросить UserInstance, используя следующий запрос:

UserInstance.includes(:emails).where('emails.email = ?', email)
0 голосов
/ 20 сентября 2018
User.joins(:instance_users, :emails).exists?(
    user_emails: {email: @email}, 
    instance_users: {instance: @current_instance }
)

Это похоже на работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...