例如,如果我的模型中有一个方法接受来自我的控制器的字符串。我可以在我的模型中的其他地方调用它,它会返回布尔值吗?或者有更好的方法,可能是通过设置变量?
class Object
def method_true?(args)
['a', 'b'].include?(args)
end
def do_stuff
method_true? #outcome of method_true?
end
end
答案 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
。