「マッチ」と呼ばれるモデルと「ベット」と呼ばれるモデルがあります
class Match < ActiveRecord::Base
...
has_many :bets
end
そして私のモデルベット:
class Bet < ActiveRecord::Base
attr_accessible :match_id, :user_id, :bet
...
belongs_to :match
belongs_to :user
end
次のコードを使用して、いくつかの試合とユーザーの賭けを一緒に選択しています。
@matches = Match.includes(:bets).where("bets.user_id = ? or bets.user_id is NULL", @user.id)
このクエリでユーザー ベットにアクセスするにはどうすればよいですか?
これを使用しても機能しません:
@matches.each do |match|
match.bet.bet
...
試合中のベット属性にアクセスするには?
ありがとう!!
このコードで@sevenseacatの回答を試してください:
@user ||= User.find_by_id(params[:user_id]) if params[:user_id]
if @user
@matches = Match.includes(:home_team, :away_team, :bets).where("bets.user_id = ? or bets.user_id is NULL", @user.id) #.group_by{ |match| match.date.strftime("%d/%m/%y")}
@matches.each do |match|
match.bets.each do |bet|
bet.bet
end
end
end
これを match.bets.first に変更しました (各 match_id と user_id に対して 1 ベットしかないので、機能します)。