我有一个模型关联设置,其中每个User
has_one Buyer
和特定Users
也可以注册为Seller
(has_one
关联)。
另外,某些买方可以指定为Elite
与has_one
的另一个Buyer
关系。
现在我的情况是,我想设置一个cron
工作来检查不同buyers
的活动,并排除所有sellers
和elite buyers
。
我的方法是:
def self.create_daily_user_notifications
@users = User.where({ banned: false, admin: false })
@users = @users.reject {|u| u.seller or u.buyer.elite }
end
在这种情况下的问题是,如果某个条件buyer
没有关联的elite
关系,则实际上会产生错误undefined method elite for buyer
。
我猜是因为在buyer
不是elite
的情况下,联接不存在。有没有办法可以添加这张支票?
答案 0 :(得分:2)
那么,您可以使用try
来消除错误并继续检查。
@users = @users.reject {|u| u.seller or u.buyer.try(:elite) }