:conditions => ['body LIKE?' AND 'title LIKE?', "%#{search}%"]

Try fixing the condition clause to:

     :conditions => ['body LIKE ? AND title LIKE ?', "%#{search}%", "%#
{search}%" ]

You are passing an array containing the SQL "WHERE" clause in a
template. Each '?' is a placeholder for the variables following the
initial string containing the condition. For every '?' in the clause
there has to be a corresponding variable to be inserted. Your original
had two placeholders and only one variable. Placeholders show where
the corresponding variables will be inserted. In your code the
variable would have been inserted as a run-on to the "LIKE" which SQL
would have complained about because it would have been a syntax error.

The 'AND' is a boolean in the SQL statement and has to be part of it.
Ruby was getting confused by your original statement because the "AND"
was outside the single-quotes and thought you were ANDing two strings.

On Aug 15, 6:22 pm, Philip Gavrilos <rails-mailing-l...@andreas-s.net>
wrote:
> Any suggestion why im getting this message in my Simple Search ?
>
> ** i want to search in multiple rows in my db.
>
> thanks
>
> SyntaxError in PostsController#index
>
> /Users/webstic/Sites/weblog/app/models/post.rb:7: syntax error,
> unexpected tCONSTANT, expecting ']'
> ...onditions => ['body LIKE?' AND 'title LIKE?', "%#{search}%"]...
>                               ^
> /Users/webstic/Sites/weblog/app/models/post.rb:7: syntax error,
> unexpected ']', expecting kEND
> ... 'title LIKE?', "%#{search}%"], :order => 'created_at DESC'
>                               ^
>
> code @ models/posts.rb
>
>   def self.search(search, page)
>     paginate :per_page => 3, :page => page,
>              :conditions => ['body LIKE?' AND 'title LIKE?',
> "%#{search}%"], :order => 'created_at DESC'
>   end
> end
> --
> Posted viahttp://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to