不能包含ActiveModel :: Model

时间:2014-02-22 20:42:54

标签: ruby-on-rails activemodel

我有一个类TaskBuilder,我想添加各种ActiveModel方法,以便它可以利用ActionPack。据我了解,在Rails 4中,这将解决问题:

class TaskBuilder
  include ActiveModel::Model

当我这样做时,我收到此错误:

task_builder.rb:2:in `<class:TaskBuilder>': 
  uninitialized constant TaskBuilder::Active_Model (NameError)

请注意,最初我只打算使用验证,并且只是包含该模块,没有任何问题,例如,

class TaskBuilder
  include ActiveModel::Validations

工作得很好。我正在使用Rails 4.0.0。这是怎么回事?

2 个答案:

答案 0 :(得分:3)

由于类的延迟加载(自动加载),旧版rails issue #5768中提到添加require 'active_model'是必要的。

require 'active_model'

class TaskBuilder
  include ActiveModel::Model

答案 1 :(得分:0)

我认为你的代码中有拼写错误。 请检查include ActiveModel::Model课程中是否有include Active_Model::Model而非TaskBuilder注意:_不应该在那里)。

class TaskBuilder
  include ActiveModel::Model    ### Match this