在遵循Rails 4.0 补充之后,我进入了一些特定问题部分,迈克尔提到
Micropost 规范 (
spec/models/micropost_spec.rb
) 中的一个微小变化是从dup
方法(复制用户的用户微帖子)到to_a
方法(将它们转换为数组)的变化。这是带有的版本dup
:
导轨 3.2
it "should destroy associated microposts" do
microposts = @user.microposts.dup
@user.destroy
microposts.should_not be_empty
microposts.each do |micropost|
Micropost.find_by_id(micropost.id).should be_nil
end
end
导轨 4.0
it "should destroy associated microposts" do
microposts = @user.microposts.to_a
@user.destroy
expect(microposts).not_to be_empty
microposts.each do |micropost|
expect(Micropost.where(id: micropost.id)).to be_empty
end
end
他自己说他并不完全理解改变方法的必要性:
由于我不清楚的原因,对
dup
Rails 4.0 的调用不再有效,但将其替换为to_a
工作正常。
那么为什么不再dup
工作了呢?