2013-02-06 30 views
6

在我的Rails 3.2.11和 “发展” 的环境,当我尝试有一个活跃的模型:Rails的加载ActiveModel 3:不能加载ActiveModel包括::型号直接

class DisponibilityApi 
    include ActiveModel::Model 

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

end 

我有一个错误:

NameError:未初始化加载ActiveModel不变::型号

但是,当我手动包括它:

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 

现在起作用了!

我错过了什么吗?

谢谢!

回答

-2

似乎ActiveModel :: Model模块不再存在了,您必须手动包含模型所需的模块。

即使文档指出,模块仍然存在,咋一看在〜/ .rvm文件证明,没有model.rb文件了:

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中。

16

ActiveModel :: Model是Rails 4的新功能,这就是它出现在Github主控台上的原因,而不是在3.x宝石中显示的原因。如果你看看Github上的3.x版本分支,它也不在那里。

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

对于Rails开发3.x中,您将需要手动包括每个模块。

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

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

+0

如果你想使用此与加载ActiveModel你SimpleForm还必须执行'坚持?'方法。 – jethroo

相关问题