2013-06-09 3 views
1

У меня есть пользователь, имеющий has_many ассоциации. У ассоциаций есть поле провайдера. Я хочу проверить, есть ли у пользователя поставщик. Если провайдер был полем в таблице пользователя, я бы просто сделал provider.blank? Как сделать ту же проверку при достижении ассоциации has_many?проверить наличие записи на пользователе в связанной модели

EDIT:

class User < ActiveRecord::Base 

    has_many :authentications 

end 

class Authentications < ActiveRecord::Base 

    belongs_to :user 

end 

авторизации таблица имеет следующие поля

:provider 
:user_id 
:uid 
:id 

ответ

2

Вы можете проверить, если какие-либо из авторизаций пользователя содержит поставщик, используя следующий:

user.authentications.any? {|a| a.provider } 

any? итерацию над массивом и возвращает true, если блок возвращает true при передаче каждого элемента массива. Когда массив пуст (т. Е. Нет аутентификации), он возвращает false.

+0

пользователь has_many ассоциация. поставщик - поле в таблице ассоциаций. – Arel

+0

Просто обновил мой вопрос с помощью некоторого кода. – Arel

+0

Спасибо, отредактировал мой ответ –

Смежные вопросы