Forum: Ruby on Rails Using OR in a complex condition

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Robert S. (Guest)
on 2007-06-28 08:50
Sorry to bother everyone again, but I'm trying to extend this
functionality just a little bit further before calling it a day.

def auto_complete_responder_for_contacts(value)

   user = User.find(current_user.id)
   @contactss = user.contacts.find(:all,
                             :conditions => [ 'LOWER(fullname) LIKE
?','%' + value.downcase + '%'],
                             :order => 'fullname ASC',
                             :limit => 8)
        render :partial => 'contacts' and return

end


As this stands right now, everything works. :) What I'm trying to do is
to have it search for multiple conditions and not just the fullname
field. For instance, there is a city field in the contacts table. I
would like a user to be able to type in the city and also have it
compare against that part of the table.

Unfortunately, I can't seem to group off the first condition so that I
can use an OR to add a new one. ( ) draws a syntax error. " " kills the
functionality altogether. Is there another way?
Thorsten (Guest)
on 2007-06-28 13:53
(Received via mailing list)
:conditions => [( 'LOWER(fullname) LIKE
?) OR (LOWER(city) LIKE ?)','%' + value.downcase + '%','%' +
value.downcase + '%']

that doesn't work?
Robert S. (Guest)
on 2007-06-28 17:09
Unfortunately not.

app/controllers/desk_controller.rb:148: syntax error, unexpected ',',
expecting ')'
                                 :conditions => [( 'LOWER(fullname) LIKE
?) OR (LOWER(email) LIKE ?)','%' + value.downcase + '%','%' +
value.downcase + '%']
                                                                                                      ^
app/controllers/desk_controller.rb:148: syntax error, unexpected ',',
expecting ')'
                                 :conditions => [( 'LOWER(fullname) LIKE
?) OR (LOWER(email) LIKE ?)','%' + value.downcase + '%','%' +
value.downcase + '%']
                                                                                                                                 ^
app/controllers/desk_controller.rb:148: syntax error, unexpected ']',
expecting ')'
                                 :conditions => [( 'LOWER(fullname) LIKE
?) OR (LOWER(email) LIKE ?)','%' + value.downcase + '%','%' +
value.downcase + '%']
                                                                                                                                                            ^
app/controllers/desk_controller.rb:149: syntax error, unexpected ',',
expecting ')'
app/controllers/desk_controller.rb:151: syntax error, unexpected
tIDENTIFIER, expecting ']'
        render :partial => 'contacts' and return


Thorsten wrote:
> :conditions => [( 'LOWER(fullname) LIKE
> ?) OR (LOWER(city) LIKE ?)','%' + value.downcase + '%','%' +
> value.downcase + '%']
>
> that doesn't work?
jparker (Guest)
on 2007-06-28 19:17
(Received via mailing list)
That first parenthesis should probably be inside the quote.

-John

On Jun 28, 6:09 am, Robert S. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.