0
我有一個數據時間屬性taken_at
在我的模型之一,將記錄測試時。我試圖驗證這一領域總是出現在我的下面一行型號:創建!沒有在rails3中設置datetime屬性
validates :taken_at, :presence => true
在我的RSpec的測試中,我確認這個規則與下面的測試:
before (:each) do
@user = Factory(:user)
@attr = { :taken_at => DateTime.now }
end
it "should create a new profile given valid attributes" do
# set taken_at inside of a block because the validations fail otherwise.
@user.hartman_value_profiles.create! do |hvp|
hvp.taken_at = DateTime.now
end
end
正如你所看到的,我在塊內設置了taken_at
,而不是將它作爲參數傳入。這是工作,但我不明白爲什麼下面的測試將會失敗:
it "should create a new profile given valid attributes" do
@user.hartman_value_profiles.create!(@attr)
end
沒有人有任何深入瞭解這到底是怎麼回事呢?任何提示,技巧或指向文檔的指針將不勝感激。
就是這樣。我在模型中定義了'attr_accessible'。感謝您的解釋。 – spinlock 2011-03-22 02:06:10