なぜA/Rは変更が保存されるのを待たずに、の関係の変更をただちに保持するように設計されていますか?nilに関係を設定すると即座に永続化されます
class Book < ActiveRecord::Base
has_one :author
end
class Author < ActiveRecord::Base
belongs_to :book
end
を、次のシード・データ:
a = Author.new(:name => "Joe Author")
Book.create(:title => "The Book Title", :author => a)
...
...
次の書籍のためのモデルと著者を考えてみましょう(3.1.4レール)
ブックをフェッチするとタイトルを調整でき、Book.saveが呼び出されるまで何も保持されません。
ただし、Authorとの関係を調整しようとすると(たとえば、それをnilに設定する)、activerecordは変更をただちに維持します。
これは設計されているようで、mongoidのような他のA/Rのような実装によって繰り返されます。 A/Rは、変更が保存されるのを待つのではなく、変化の直後に変更を永続化するように設計されているのはなぜですか?