2012-08-28 20 views
0

我在爲我的Rails應用程序的輔助下選擇:Rails選擇Empty方法?

def unit_select 
    Unit.all.map{|unit| unit.calls.empty? ? [unit.unit_name, unit.id] : ["#{unit.unit_name} (on call)", unit.id] } 
    end 

這樣做是尋找具有呼叫和單位,如果該單位有電話的append(隨叫隨到)旁邊的單元以一種形式。我看到這個問題是當它去尋找unit.calls.empty?它考慮到了狀態爲「已關閉」的通話記錄,這不應該被考慮在內。

是否有另一種方法,我可以使用(或寫),讓我看看unit.calls傳遞是否在call_status打開電話?

回答

0

在您的單元模型中,您可以覆蓋空?在調用關聯方法:

class Unit < ActiveRecord::Base 
    has_many :calls do 
    def empty? 
     self.where(:call_status => :open).any? 
    end 
    end 
end 
+0

這完美的作品,但它覆蓋的是空的?方法,以防我需要在其他地方使用它。我試圖將其重命名爲分配?並在我的幫手中使用它,但它失敗。這是Rails中的一個約束,只允許空?作爲一種方法? – nulltek

+0

nope,你可以使用任何你想要的方法,不應該有問題。 –

+0

其實,罷工。當我關閉一個電話時,它將call_status設置爲「關閉」,並且在表單中仍然顯示單元(打電話) – nulltek