Quoting Jeffrey L. Taylor <[email protected]>:
> Quoting Leah Antkiewicz <[email protected]>:
> > I am making a search to look through my database at a string that I
> > enter into a text field. I got it to work properly if I enter in the
> > exact title but I wanted to see if I could find database entries with
> > similar titles.
> > 
> > I currently have this code that works:
> > @find = Product.find(:first, :conditions => ["title = '#{name}'"])
> > So when I enter in "Rolling Rock" it finds that name in the database
> > 
> > What I want to do now is if I enter in "Rolling" it will still find
> > Rolling Rock. I tried the following but it doesn't work:
> > @find = Product.find(:first, :conditions => ["title.include?
> > '#{name}'"])
> > 
> > I get this error:
> > ActiveRecord::StatementInvalid in SearchController#results
> > Mysql::Error: You have an error in your SQL syntax; check the manual
> > that corresponds to your MySQL server version for the right syntax to
> > use near 'include'#{name}')  LIMIT 1' at line 1: SELECT * FROM
> > `products` WHERE (title include'#{name}')  LIMIT 1
> > 
> 
> @find = Product.find(:first, :conditions => ["title like '?'", "%#{name}%"])
> 
> This code is untested, but I would expect to work.
> 
The inner single quote are not needed, i.e., 

@find = Product.find(:first, :conditions => ['title like ?', "%#{name}%"])

HTH,
  Jeffrey

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to