「Ruby/rails/db関連付け」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→1:n関連のデータ取得例) |
|||
行31: | 行31: | ||
battles.each do |battle| | battles.each do |battle| | ||
logger.debug("battle.user.name=#{battle.user.name}") | logger.debug("battle.user.name=#{battle.user.name}") | ||
+ | end | ||
+ | |||
+ | ==1:1関連のデータ取得例== | ||
+ | class Supplier < ApplicationRecord | ||
+ | has_one :account | ||
+ | end | ||
+ | class Account < ApplicationRecord | ||
+ | end | ||
+ | |||
+ | acounts = Account.all | ||
+ | acounts.each do |account| | ||
+ | logger.debug("account.supplier.name=#{account.supplier.name}") | ||
end | end | ||
==参考== | ==参考== | ||
公式rails関連付け:https://railsguides.jp/association_basics.html | 公式rails関連付け:https://railsguides.jp/association_basics.html |
2017年11月17日 (金) 07:16時点における版
関連付け一覧
belongs_to has_one has_many has_many :through has_one :through has_and_belongs_to_many
belongs_to関連付けオプション
:autosave :class_name :counter_cache :dependent :foreign_key :primary_key :inverse_of :polymorphic :touch :validate :optional
1:n関連のデータ取得例
class Battle < ApplicationRecord belongs_to :user end class User < ApplicationRecord has_many :battle end
battles = Battle.where("user_id = ?", params[:id]) battles.each do |battle| logger.debug("battle.user.name=#{battle.user.name}") end
1:1関連のデータ取得例
class Supplier < ApplicationRecord has_one :account end class Account < ApplicationRecord end
acounts = Account.all acounts.each do |account| logger.debug("account.supplier.name=#{account.supplier.name}") end
参考
公式rails関連付け:https://railsguides.jp/association_basics.html