名前付きスコープを介してパラメータを結合にバインドしようとしていますが、エラーが発生します。
それを行う正しい方法は何ですか?
class Idea < ActiveRecord::Base
#relations
has_many :votes, :inverse_of => :idea
has_one :has_voted, :class_name => 'Vote', :conditions => ['ip = :ip']
# named scopes
scope :with_vote, lambda {|ip| {
:include => [:has_voted],
# like this ??
:conditions => [:has_voted => {:conditions => {:userIp => ip}} ]
}}
end
Idea.with_vote(request.ip).all
モデルの条件定義が、 WHEREではなく、 JOINのON句に表示されるようにする必要があると思います。
編集私は次のクエリを取得しようとしています
select Ideas.*, Votes.* from Ideas
left outer join Votes
on Votes.Idea_id = Idea.id AND Votes.ip = {request.ip}