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を入れてほしい。