覆盖Rails 4中的现有模型

时间:2017-05-27 05:51:25

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-models

我正在尝试覆盖现有的活动记录模型,但新的活动记录模型没有来自旧活动记录模型的方法。这是我尝试使用的代码

class ModelA < ActiveRecord::Base

   def method_modela_1
     logger.info "I am in method_modela_1"
   end

   def method_modelb_2
      logger.info " I am in method_modelb_2"
   end
end

接下来,我用ModelB覆盖ModelA

class ModelB < ModelA
   def foo
      logger.info "foo method from model B"
   end
end

所以现在我正在尝试使用以下代码编写试图访问find_or_create_by的代码

some_variable = ModelB.find_or_create_by(:id => 1234)

但它说***** NoMethodError Exception: undefined method 'find_or_create_by' for ModelB:Module**

我错过了什么?记录我正在使用'rails', '4.2'

1 个答案:

答案 0 :(得分:1)

关键字是&#34; NoMethodError例外:未定义的方法&#39; find_or_create_by&#39;对于ModelB:模块&#34;。

在某个地方有一个module ModelB,由于加载顺序和/或常量查找规则,它会影响模型。