我有这些课程:
class Game < ActiveRecord::Base
has_many :offers
#table has an integer-column 'season'
end
class Broker < ActiveRecord::Base
has_many :offers
end
class Offer < ActiveRecord::Base
belongs_to :game
belongs_to :broker
end
我想从一个经纪人选择2009年游戏季节的所有优惠。 我试过了
Broker.first.offers.joins(:game).where(:game => {:season => 2009}).each do |o|
puts o.inspect
end
但是这给了我
`在日志中救援':PGError:错误:缺少表“游戏”的FROM子句条目(ActiveRecord :: StatementInvalid) 第1行:...游戏“开启”游戏“。”id“=”提供“。”game_id“WHERE”游戏“。”se ... :SELECT“offer”。* FROM“提供”INNER JOIN“游戏”ON“游戏”。“id”=“offer”。“game_id”WHERE“游戏”。“season”= 2009 AND(“offer”.broker_id = 1)
我该怎么做这样的选择,或者我在哪里可以找到更多相关信息?
答案 0 :(得分:13)
将where(:game => {:season => 2009})
更改为where(:games => {:season => 2009})
您的表名为“games”(复数形式),where条件中的哈希键应该是表名,而不是关联名。