acts_as_versioned
Rails Recipesの#20、acts_as_versionedを使う。本ではconsoleを使って色々と試している。こんな感じで:
>> e1 = Entry.create(:title => "Day One", :body => "...") >> e1.versions => 1 >> e1.body << "Hello..." >> e1.save >> e1.version => 2 >> e1.versions => 2 # これが自分の環境だと1になってしまう。
この.versionsにハマった。よく考えればe1自体はセーブしても更新はされてないので当たり前なのに、本を盲目に読んでしまったためにハマった。セーブした後にもう一度e1を取ってくればversionsも更新される。後のほうのコンソールでの実演ではこのようになっていた。
>> e1.versions(true) => 2 # これだと自分の環境でも更新された値が取れる。
んー、そうか、これはforce_reloadをtrueにしてるってことにやっと気づく。でもあのコンソールの実演構成だとつまづく人いないかな。最初からtrueを入れてほしい。