Ruby on rails 3 创造!未在rails3中设置datetime属性
我的一个模型中有一个datatime属性Ruby on rails 3 创造!未在rails3中设置datetime属性,ruby-on-rails-3,rspec,Ruby On Rails 3,Rspec,我的一个模型中有一个datatime属性在处获取,它将记录何时进行测试。我试图通过以下行验证此字段是否始终存在于我的模型中: validates :taken_at, :presence => true 在我的rspec测试中,我将通过以下测试验证此规则: before (:each) do @user = Factory(:user) @attr = { :taken_at => DateTime.now } end it "should create a new pr
在
处获取,它将记录何时进行测试。我试图通过以下行验证此字段是否始终存在于我的模型中:
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
正如您所看到的,我在块内设置take\u,而不是将其作为参数传入。这是可行的,但我不明白为什么以下测试会失败:
it "should create a new profile given valid attributes" do
@user.hartman_value_profiles.create!(@attr)
end
有人知道这里发生了什么吗?如果您有任何提示、技巧或文档指针,我们将不胜感激。您的第二个示例使用大量赋值,而第一个示例使用直接赋值。你有没有改变禁止大规模的分配到拍摄地点?就是这样。我在模型中定义了attr\u accessible
。谢谢你的解释。