&tag(Rails/モデル); *目次 [#m834da88] #contents *関連ページ [#s6c9d29c] -[[./マイグレーション]] *参考情報 [#y691e92b] *リレーション [#ocd095b5] **参考情報 [#t2ea06fb] -[[belongs_toとhas_one の違い|WEBデザイン Tips:http://blog.digital-squad.net/article/278843296.html]] **has_one [#m19450bf] -注文に対し、注文明細が1:1で存在するような場合に使用する。 -例えばOrder, OrderDetail(order_id)の場合に、 #pre{{ class Order has_one :order_dtail end }} -とすると、order.order_detailで自動的に読み込んでくれる(idで検索する)。 -条件を指定することもできる #pre{{ class Order has_one :order_dtail, :through => :order_dtail, :conditions => ['order.active = ?', true] end }} -order.order_detail = new_order_detailするとセットした瞬間にnew_order_detailがsaveされる。これはautosave無関係。 -これを避けるためには、new_order_detail = order.build_order_detail しなければならない(この場合、new_order_detail.order_id は自動でセットされる。保存されてない状態)。 **belongs_to [#ab4dfaa8] -OrderDetailから、Orderを参照したいときに使う。 #pre{{ class OrderDetail belongs_to :order end }}