簡體   English   中英

檢查鐵軌中鏈式關聯的存在

[英]Check chained association existence in rails

我有一個rails模型關聯設置,每個User has_one Buyer和特定Users也可以注冊為Sellerhas_one關聯)。

也有一些購房者可以指定為Elite作為另一個has_one關系到Buyer

現在我遇到一種情況,我想設置一個cron作業來檢查不同buyers的活動,並排除所有sellerselite 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM