String problem

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = ['t','a']
@user = User.find(:all,:conditions=>["firstname IN(#{arr.join(',')})"])
it is executing like
select * from users where firstname IN('t,a')
it returns 0 rows

Plz reply if anybody knows solution

···

--
Posted via http://www.ruby-forum.com/.

Hi --

···

On Mon, 24 Nov 2008, Ganesh Ganesh wrote:

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = ['t','a']
@user = User.find(:all,:conditions=>["firstname IN(#{arr.join(',')})"])
it is executing like
select * from users where firstname IN('t,a')
it returns 0 rows

You'll probably get more responses to ActiveRecord questions on the
Rails mailing lists. Meanwhile:

   :conditions => ["firstname IN (?)", arr]

David

--
Rails training from David A. Black and Ruby Power and Light:
   Intro to Ruby on Rails January 12-15 Fort Lauderdale, FL
   Advancing with Rails January 19-22 Fort Lauderdale, FL *
   * Co-taught with Patrick Ewing!
See http://www.rubypal.com for details and updates!

Ganesh Ganesh wrote:

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = ['t','a']
@user = User.find(:all,:conditions=>["firstname IN(#{arr.join(',')})"])

Docs: find (ActiveRecord::Base) - APIdock

test666> arr = %w(a b)
=> ["a", "b"]
test666> User.find(:all, :conditions => { :firstname => arr} )
  User Load (26.0ms) SELECT * FROM `users` WHERE (`users`.`firstname`
IN ('a','b'))

···

--
Posted via http://www.ruby-forum.com/\.