2016-11-22 88 views
0

例如,如果我的模型中有一個方法接受來自我的控制器的字符串。我能夠在我的模型中的其他地方調用它,它會返回布爾值嗎?或者有更好的方法,可能通過設置一個變量?如何在Rails模型中用另一個方法的參數調用方法

class Object 
    def method_true?(args) 
    ['a', 'b'].include?(args) 
    end 

    def do_stuff 
    method_true? #outcome of method_true? 
    end 
end 
+0

只要您給出正確的參數,該方法應該可以正常工作。 – titan

+0

你有沒有得到它的工作? –

+0

是的,謝謝!我做了一個不太冒險的方式,並將其寫在控制器上(它應該放在第一位)。 –

回答

0

修補Object班不是最好的主意。

更多Rails的方式是創建具有這些方法的模塊,並將其混合到你的模型(或,成ActiveRecord::Base,如果你確信你需要它無處不在):

module ActiveRecordExtentions 
    def method_true?(args) 
    ['a', 'b'].include?(args) 
    end 

    def do_stuff 
    method_true? #outcome of method_true? 
    end 
end 

# /initializers/activerecord_extentions.rb 
ActiveRecord::Base.send(:include, ActiveRecordExtentions) # or extend, you decide 

現在的方法是適用於所有從ActiveRecord::Base繼承的型號。

相關問題