1

我有一个有很多关联的用户。关联有一个提供者字段。我想检查用户是否有提供者。如果提供者是用户表上的一个字段,我只会做provider.blank?如何通过 has_many 关联进行相同的检查?

编辑:

class User < ActiveRecord::Base

  has_many :authentications

end

class Authentications < ActiveRecord::Base

  belongs_to :user

end

Authentications 表具有以下字段

:provider
:user_id
:uid
:id
4

1 回答 1

2

您可以使用以下方法检查任何用户的身份验证是否包含提供程序:

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

any?遍历数组,true如果块在传递数组的每个元素时返回 true,则返回。当 Array 为空(即没有身份验证)时,它返回false.

于 2013-06-09T22:31:19.750 回答