Rails の書留
元を辿れば「設計」
DB には世話になってる
なぜ Relation があるのか
共通の命令をコードの中で端的にかつ易に記す為。
Relation が無い場合
class Custom < ActiveRecord::Base end class Order < ActiveRecord::Base end
新規 order を 既存 customer へ追加する。
@order = Order.create(order_date: Time.now, customer_id: @customer.id)
customer を削除する。つれて、これに関わる order も削除する。
@orders = Order.where(customer_id: @customer.id) @oerders.each do |order| order.destroy end @customer.destroy
Relatin が有る場合
class Custom < ActiveRecord::Base has_many :orders, dependent: :destroy end class Order < ActiveRecord::Base belongs_to :customer end
新規 order を 既存 customer へ追加する。
@order = @customer.orders.create(order_date: Time.now)
customer 削除と同時に order も削除する
@customer.destroy
引用元 # thanks