2013-02-06 55 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

相關問題