首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3 ActiveModel:不能直接包含ActiveModel::Model

Rails 3 ActiveModel:不能直接包含ActiveModel::Model
EN

Stack Overflow用户
提问于 2013-02-07 03:34:34
回答 2查看 5.2K关注 0票数 7

在我的Rails 3.2.11和“开发”环境中,当我尝试拥有一个活动模型时:

代码语言:javascript
复制
class DisponibilityApi
  include ActiveModel::Model

  attr_accessor :start_time, :end_time 
  validates :start_time, :end_time, :presence => true

end

我有一个错误:

NameError:未初始化的常量ActiveModel::Model

但是当我手动包含它时:

代码语言:javascript
复制
class DisponibilityApi
  extend  ActiveModel::Naming
  extend  ActiveModel::Translation
  include ActiveModel::Validations
  include ActiveModel::Conversion

  attr_accessor :start_time, :end_time 
  validates :start_time, :end_time, :presence => true

end

现在它起作用了!

我是不是漏掉了什么?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-04-16 06:16:33

ActiveModel::Model是Rails4的新特性,这就是为什么它会出现在Github master中,而不是3.x的gem中。如果你看一下Github上的3.x版本分支,它也不在那里。

https://github.com/rails/rails/tree/3-2-stable/activemodel/lib/active_model

对于Rails3.x,您需要手动包含每个模块。

要查看它包含的内容,请查看master分支中的文件。

https://github.com/rails/rails/blob/master/activemodel/lib/active_model/model.rb

票数 17
EN

Stack Overflow用户

发布于 2013-02-07 03:43:20

看起来ActiveModel::Model模块已经不存在了,你必须为你的模型手动包含你想要的模块。

即使文档声明模块仍然存在,快速查看~/.rvm文件夹也会证明不再有model.rb文件:

代码语言:javascript
复制
activemodel-3.2.11/lib » pwd                   
/Users/Intrepidd/.rvm/gems/ruby-1.9.3-p327-turbo/gems/activemodel-3.2.11/lib
activemodel-3.2.11/lib » ls
active_model    active_model.rb
activemodel-3.2.11/lib » ls -l active_model
total 280
-rw-r--r--   1 Intrepidd  staff  16574  9 Jan 00:39 attribute_methods.rb
-rw-r--r--   1 Intrepidd  staff   4556  9 Jan 00:39 callbacks.rb
-rw-r--r--   1 Intrepidd  staff   2338  9 Jan 00:39 conversion.rb
-rw-r--r--   1 Intrepidd  staff   4879  9 Jan 00:39 dirty.rb
-rw-r--r--   1 Intrepidd  staff  12087  9 Jan 00:39 errors.rb
-rw-r--r--   1 Intrepidd  staff   5259  9 Jan 00:39 lint.rb
drwxr-xr-x   3 Intrepidd  staff    102  9 Jan 00:39 locale
drwxr-xr-x   4 Intrepidd  staff    136  9 Jan 00:39 mass_assignment_security
-rw-r--r--   1 Intrepidd  staff   8720  9 Jan 00:39 mass_assignment_security.rb
-rw-r--r--   1 Intrepidd  staff   6478  9 Jan 00:39 naming.rb
-rw-r--r--   1 Intrepidd  staff   4257  9 Jan 00:39 observer_array.rb
-rw-r--r--   1 Intrepidd  staff   8163  9 Jan 00:39 observing.rb
-rw-r--r--   1 Intrepidd  staff     38  9 Jan 00:39 railtie.rb
-rw-r--r--   1 Intrepidd  staff   2939  9 Jan 00:39 secure_password.rb
-rw-r--r--   1 Intrepidd  staff   4304  9 Jan 00:39 serialization.rb
drwxr-xr-x   4 Intrepidd  staff    136  9 Jan 00:39 serializers
-rw-r--r--   1 Intrepidd  staff    319  9 Jan 00:39 test_case.rb
-rw-r--r--   1 Intrepidd  staff   2339  9 Jan 00:39 translation.rb
drwxr-xr-x  13 Intrepidd  staff    442  9 Jan 00:39 validations
-rw-r--r--   1 Intrepidd  staff   7961  9 Jan 00:39 validations.rb
-rw-r--r--   1 Intrepidd  staff   6227  9 Jan 00:39 validator.rb
-rw-r--r--   1 Intrepidd  staff    172  9 Jan 00:39 version.rb

这很有趣,因为这个文件仍然存在于github上,但不在.gem中。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14737289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档