如何在Rails模型中使用另一个方法的参数调用方法

时间:2016-11-22 07:31:05

标签: ruby-on-rails ruby model

例如,如果我的模型中有一个方法接受来自我的控制器的字符串。我可以在我的模型中的其他地方调用它,它会返回布尔值吗?或者有更好的方法,可能是通过设置变量?

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

  def do_stuff
    method_true? #outcome of method_true?
  end
end

1 个答案:

答案 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