Rails/モデル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/モデル);
*目次 [#m834da88]
#contents
*関連ページ [#s6c9d29c]
-[[../マイグレーション]]
*参考情報 [#y691e92b]
*リレーション [#ocd095b5]
**参考情報 [#t2ea06fb]
-[[belongs_toとhas_one の違い|WEBデザイン Tips:http://bl...
-[[Active Record の関連付け (アソシエーション) | Rails ガ...
**has_one [#m19450bf]
-注文に対し、注文明細が1:1で存在するような場合に使用する。
-例えばOrder, OrderDetail(order_id)の場合に、
#pre{{
class Order
has_one :order_dtail
end
}}
-とすると、order.order_detailで自動的に読み込んでくれる(i...
-条件を指定することもできる
#pre{{
class Order
has_one :order_dtail, :through => :order_dtail, :condit...
end
}}
-order.order_detail = new_order_detailするとセットした瞬...
-これを避けるためには、new_order_detail = order.build_ord...
**belongs_to [#ab4dfaa8]
-OrderDetailから、Orderを参照したいときに使う(単数で指定)。
#pre{{
class OrderDetail
belongs_to :order
end
}}
-order_detailsにはorder_idが存在すること。
***foreign_key、primary_keyの指定 [#nb44d14e]
-foreign_keyは自分のテーブルの外部キー、primary_keyはよそ...
-例えばsoftware_infoと関連を持ち、自テーブルのurl、softwa...
belongs_to :software_info, :foreign_key => 'url', :prima...
***belongs_toで条件指定 [#x6dfcf88]
-Rails 4ではconditionではなくて、lambdaを使う。
-ただしconditionsだけではだめで、foreign_key、primary_key...
-例えば自テーブルのurlとng_itemのvalueを一致させて、さら...
#pre{{
belongs_to :ng_item,
-> {where(kind: NgItem::KIND__URL)},
:foreign_key => 'url', :primary_key => 'value'
}}
**has_one / belongs_toの考え方 [#sca68442]
-メイン側モデルはhas_one。
-従属側モデルはbelongs_to。従属側モデルはxxx_idでメイン側...
-従属モデルに外部キーが存在する。
-メイン側は、従属側の外部キーなど我関せずであると考えれば...
-トランザクションテーブルからマスターテーブルを参照する場...
**has_many [#w3aa5f7e]
-メイン側にhas_manyを追加。従属側はbelongs_to(なくてもよ...
-[[Active Record の関連付け (アソシエーション) | Rails ガ...
#pre{{
class Customer < ActiveRecord::Base
has_many :orders, dependent: :destroy
end
class Order < ActiveRecord::Base
belongs_to :customer
end
}}
-Orderにはcustomer_idというカラムが存在する(外部キー)。外...
終了行:
&tag(Rails/モデル);
*目次 [#m834da88]
#contents
*関連ページ [#s6c9d29c]
-[[../マイグレーション]]
*参考情報 [#y691e92b]
*リレーション [#ocd095b5]
**参考情報 [#t2ea06fb]
-[[belongs_toとhas_one の違い|WEBデザイン Tips:http://bl...
-[[Active Record の関連付け (アソシエーション) | Rails ガ...
**has_one [#m19450bf]
-注文に対し、注文明細が1:1で存在するような場合に使用する。
-例えばOrder, OrderDetail(order_id)の場合に、
#pre{{
class Order
has_one :order_dtail
end
}}
-とすると、order.order_detailで自動的に読み込んでくれる(i...
-条件を指定することもできる
#pre{{
class Order
has_one :order_dtail, :through => :order_dtail, :condit...
end
}}
-order.order_detail = new_order_detailするとセットした瞬...
-これを避けるためには、new_order_detail = order.build_ord...
**belongs_to [#ab4dfaa8]
-OrderDetailから、Orderを参照したいときに使う(単数で指定)。
#pre{{
class OrderDetail
belongs_to :order
end
}}
-order_detailsにはorder_idが存在すること。
***foreign_key、primary_keyの指定 [#nb44d14e]
-foreign_keyは自分のテーブルの外部キー、primary_keyはよそ...
-例えばsoftware_infoと関連を持ち、自テーブルのurl、softwa...
belongs_to :software_info, :foreign_key => 'url', :prima...
***belongs_toで条件指定 [#x6dfcf88]
-Rails 4ではconditionではなくて、lambdaを使う。
-ただしconditionsだけではだめで、foreign_key、primary_key...
-例えば自テーブルのurlとng_itemのvalueを一致させて、さら...
#pre{{
belongs_to :ng_item,
-> {where(kind: NgItem::KIND__URL)},
:foreign_key => 'url', :primary_key => 'value'
}}
**has_one / belongs_toの考え方 [#sca68442]
-メイン側モデルはhas_one。
-従属側モデルはbelongs_to。従属側モデルはxxx_idでメイン側...
-従属モデルに外部キーが存在する。
-メイン側は、従属側の外部キーなど我関せずであると考えれば...
-トランザクションテーブルからマスターテーブルを参照する場...
**has_many [#w3aa5f7e]
-メイン側にhas_manyを追加。従属側はbelongs_to(なくてもよ...
-[[Active Record の関連付け (アソシエーション) | Rails ガ...
#pre{{
class Customer < ActiveRecord::Base
has_many :orders, dependent: :destroy
end
class Order < ActiveRecord::Base
belongs_to :customer
end
}}
-Orderにはcustomer_idというカラムが存在する(外部キー)。外...
ページ名: