Rails 2.3.8 Ruby 1.8.7 および PostgreSQL で開発しています。関連でレコードを検索したい。
ユーザーギルドマスター
class UserGuildMaster < ActiveRecord::Base
has_one :leader, :foreign_key => 'guild_id', :class_name => 'UserGuildLog', :conditions => {:leader_flag => 1, :status => 1}
has_many :user_guild_logs, :foreign_key => 'guild_id', :class_name => 'UserGuildLog'
end
ユーザーギルドログ
class UserGuildLog < ActiveRecord::Base
belongs_to :guild, :class_name => "UserGuildMaster"
belongs_to :user_master
belongs_to :user_character, :class_name => "UserCharacter"
end
ユーザーキャラクター
class UserCharacter < ActiveRecord::Base
end
Leader.user_character.logined_at が 5 日より前で、user_guild_logs が10未満のUserGuildMasterを検索したい。
検索条件は以下のとおりですが、「PGError: ERROR: schema "leader"'does not exist.」というエラーが発生します。
@user_guild_masters = UserGuildMaster.find(:all, :include => [{:leader => :user_character}, :user_guild_logs],
:conditions => ['leader.user_character.logined_at < ? AND user_guild_logs.size < ?', 5.days.ago, 10]
)
この Rails プロジェクトは現在サービス中で、列を追加または変更することはできません。これらの関連レコードを見つける方法がわかりません。何か案は?