我有一个has_many关联的用户。协会有一个提供者字段。我想检查用户是否有提供者。如果提供者是用户表上的字段,我只会做provider.blank?
如何通过has_many关联进行相同的检查?
编辑:
class User < ActiveRecord::Base
has_many :authentications
end
class Authentications < ActiveRecord::Base
belongs_to :user
end
身份验证表包含以下字段
:provider
:user_id
:uid
:id
答案 0 :(得分:2)
您可以使用以下方法检查用户的任何身份验证是否包含提供程序:
user.authentications.any? {|a| a.provider }
如果在传递Array的每个元素时块返回true,则 any?
遍历数组并返回true
。当Array为空(即没有Authentications)时,它返回false
。