Rails 4.0 の補足に従った後、Michael が言及しているいくつかの特定の問題の部分にたどり着きました
Micropost 仕様 (
spec/models/micropost_spec.rb
) の 1 つの小さな変更は、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
なったのでしょうか。