http://railsapi.masuidrive.jp/module/ActiveRecord::Associations::ClassMethods/has_many
 
   :dependent - if set to :destroy all the associated objects are destroyed alongside
   this object by calling their destroy method.
 
 つまり、  
 
   class foo < ActiveRecord::Base
     has_many :bar, :dependent => :destory
     has_many :bar, :dependent => :destroy
   end
 
 のようにしておき、fooのオブジェクトをdestoryすると、barのdestoryも呼び出されるそうです。
 のようにしておき、fooのオブジェクトをdestroyすると、barのdestroyも呼び出されるそうです。
 
 
  If set to :delete_all all associated objects are deleted without calling their
  destroy method.
 
 つまり、  
 
   class foo < ActiveRecord::Base
     has_many :bar, :dependent => :delete_all
   end
 
 だと、fooをdestoryすると、barのdestoryを呼び出さずにdeleteされるそうです。
 だと、fooをdestroyすると、barのdestroyを呼び出さずにdeleteされるそうです。
 
 
  If set to :nullify all associated objects’ foreign keys are set to NULL without
  calling their save callbacks.
 
 つまり、  
 
   class foo < ActiveRecord::Base
     has_many :bar, :dependent => :nullify
   end
 
 だと、fooをdestoryすると、barのsaveを呼び出すことなく、barのfooへのforeign keyを NULL
 だと、fooをdestroyすると、barのsaveを呼び出すことなく、barのfooへのforeign keyを NULL
 にセットするらしいです。
 
 NULL可なりレーションの時の対処ですね。
 
 
  NOTE: :dependent => true is deprecated and has been replaced with :dependent => :destroy.
 
 :dependent => trueは :dependent => :destoryと同じ。
 :dependent => trueは :dependent => :destroyと同じ。
 
 #blikifooter(志田)
 
 tag: [[Ruby on Rails>tag/Ruby on Rails]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら