find_each和finder_sql相互之间玩得不好?

find_each和finder_sql相互之间玩得不好?,sql,ruby-on-rails-3,Sql,Ruby On Rails 3,使用finder\u sql的ActiveRecord关系,find\u each似乎不太合适。以前有人处理过这个问题吗?例如: class User < ActiveRecord::Base has_many :games, :dependent => :destroy, :finder_sql => proc {"SELECT * FROM games WHERE player_0_id = #{id} OR playe

使用finder\u sql的ActiveRecord关系,find\u each似乎不太合适。以前有人处理过这个问题吗?例如:

class User < ActiveRecord::Base
  has_many :games, :dependent => :destroy,
           :finder_sql =>
              proc {"SELECT * FROM games WHERE player_0_id = #{id} OR player_1_id = #{id}"}
end

class Game < ActiveRecord::Base
  belongs_to :player_0, :class_name => "User", :foreign_key => "player_0_id", :inverse_of => :games
  belongs_to :player_1, :class_name => "User", :foreign_key => "player_1_id", :inverse_of => :games
end

看看如何解决给定的问题。

hrmm,看起来很有趣。唯一的问题是其中一个玩家可以为null(如果我们试图为quickmatch找到某人)。此外,您可以在我们的数据库中使用同一对游戏进行多个游戏(您可以重播您以前与某人玩过的游戏)。如果我是您,我会更改数据模型。通过使用has_many through,您可以轻松解决此问题。看一看人力资源管理,我没有第三个模型可以用于has_许多模型都不花钱。创建一个新的。
ActiveRecord::StatementInvalid:
   SQLite3::SQLException: no such column: games.user_id: SELECT  "games".* FROM "games"  WHERE "games"."user_id" = 2 AND ("games"."id" >= 0) ORDER BY "games"."id" ASC LIMIT 1000