[英]Check chained association existence in rails
我有一個rails模型關聯設置,每個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
提供錯誤的undefined method elite for buyer
。
我猜這是因為在buyer
不是elite
情況下不存在elite
。 有什么辦法可以我添加這張支票嗎?
好了,那么您可以使用try
來消除錯誤並繼續檢查。
@users = @users.reject {|u| u.seller or u.buyer.try(:elite) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.