在Rails中覆盖模型方法

时间:2014-03-05 02:25:28

标签: ruby-on-rails ruby

我在config/initializers/my_app_model.rb

中有这个
module MyAppModel
  def test
    'test'
  end
end
ActiveRecord::Base.send :include, MyAppModel

并在app/models/namespace/my_model.rb

class Namespace::MyModel < Namespace
  def test
    'changed!'
  end
end

如何让test返回changed!?它目前返回test

1 个答案:

答案 0 :(得分:0)

在我read的一些帖子中,Rails在询问时会加载模型,我所做的是确保模型文件刚刚在初始化程序之后加载:

module MyAppModel
  def test
    'test'
  end
end
ActiveRecord::Base.send :include, MyAppModel

require Rails.root.join 'app/models/namespace/my_model'