Rails 3 find where

21 views
Skip to first unread message

Rajeev Kannav Sharma

unread,
Jul 6, 2011, 1:56:43 AM7/6/11
to rubyonra...@googlegroups.com

i have to fine those article which have state id 3 OR 4 and skill_id = params[:browsed_by_skill]
  @articles    = Article.find(:all,:conditions => ["state = ? AND skill_id = ? ", ['3', '4'], params[:browsed_by_skill]])   

Getting error this
Mysql::Error: Operand should contain 1 column(s): SELECT `articles`.* FROM `articles` WHERE (state = '3','4' AND skill_id = '5' )

any suggetions ,
THanks in advance

Rajeev Kannav Sharma

unread,
Jul 6, 2011, 1:59:33 AM7/6/11
to rubyonra...@googlegroups.com
solved
            @articles    = Article.find(:all,:conditions => ["state in (?) AND skill_id = ? ", ['3', '4'], params[:browsed_by_skill]])
Thanks

Jim Ruther Nill

unread,
Jul 6, 2011, 5:59:57 AM7/6/11
to rubyonra...@googlegroups.com
you can do

states = ['3', '4']
skill_id = params[:browsed_by_skill]

Article.where(;state => states, :skill_id => skill_id)

states in the above code can be a range or an array or a single integer.  
 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/qctcYMJ4kjMJ.

To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.



--
-------------------------------------------------------------
visit my blog at http://jimlabs.heroku.com
Reply all
Reply to author
Forward
0 new messages