I just keep thinking this is going to slice through queries like a hot knife through butter, but... there''s something I''m not getting. Here''s the gist: # get the people like the search criteria Members.find(:all, :conditions => [''first LIKE ? OR last LIKE ?'', params[:search], params[:search]) joined with the alternative of member.comments.needs_followup <> 0 iff there is a params[:followup] and it is equal to 1. Does this make sense? Thanks -- View this message in context: http://www.nabble.com/ez_where%3A-Stuck-Again-tf2017867.html#a5548178 Sent from the RubyOnRails Users forum at Nabble.com.
On Jul 28, 2006, at 3:23 PM, s.ross wrote:> > I just keep thinking this is going to slice through queries like a > hot knife > through butter, but... there''s something I''m not getting. Here''s > the gist: > > # get the people like the search criteria > Members.find(:all, :conditions => [''first LIKE ? OR last LIKE ?'', > params[:search], params[:search]) > > joined with the alternative of member.comments.needs_followup <> 0 > iff there > is a params[:followup] and it is equal to 1. > > Does this make sense? > > Thanks > -- > View this message in context: http://www.nabble.com/ez_where%3A- > Stuck-Again-tf2017867.html#a5548178 > Sent from the RubyOnRails Users forum at Nabble.com. > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/railsHey- I am not sure what you are trying to do there. Can you explain a bit more? Or give the input and sql oputput you would expect? -Ezra
What I wound up with was this (which works). I don''t know if
it''s the best
way:
def self.find_filtered(options_hash = {})
logger.debug "project = #{options_hash[:project]} and it returns
#{options_hash[:project] !~ /^--/}"
return self.find(:all, :order => ''members.created_on
DESC'', :limit =>
20) unless options_hash[:search] || options_hash[:followup] ||
options_hash[:project] !~ /^--/
options_hash[:search] = "%#{options_hash[:search]}%"
cond = Caboose::EZ::Condition.new :members do
any {first =~ options_hash[:search]; last =~ options_hash[:search]}
end
if options_hash[:followup] == ''1''
cond1 = Caboose::EZ::Condition.new :members do
follow_up == ''1''
end
cond << cond1
end
if options_hash[:project] !~ /^--/
cond2 = Caboose::EZ::Condition.new :members do
projects =~ "%#{options_hash[:project]}%"
end
cond << cond2
end
conditions = cond.to_sql
@conditions = conditions
return self.find(:all, :order => ''members.created_on
DESC'', :include =>
:contacts, :limit => 20, :conditions => conditions)
end
Ezra Zygmuntowicz-3 wrote:>
> Hey-
>
> I am not sure what you are trying to do there. Can you explain a bit
> more? Or give the input and sql oputput you would expect?
>
> -Ezra
>
--
View this message in context:
http://www.nabble.com/ez_where%3A-Stuck-Again-tf2017867.html#a5578519
Sent from the RubyOnRails Users forum at Nabble.com.