【发布时间】:2012-10-21 05:22:14
【问题描述】:
我在运行规范时遇到了一个奇怪的行为。
除非我取消注释行 baz.reload,否则此代码不起作用(baz.viewed 未更新)。
describe "#..." do
it "..." do
baz = user.notifications.create!(title: "baz")
baz.update_attribute(:created_at, Time.now + 3.day)
# it sets `viewed` to `true` in the model to which `baz` is referred.
user.dismiss_latest_notification!
# baz.reload
baz.viewed.should == true
end
end
我不使用 Spork 或 Guard 运行规范,但无论如何都不会重新加载此模型。
为什么会发生?或者,在规范中调用 .reload 方法是否正常?
【问题讨论】:
-
这是正常的。更新属性时应该调用
reload。
标签: ruby-on-rails ruby-on-rails-3 rspec rspec-rails