2016-11-22 70 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继承的型号。

相关问题