On Sep 17, 2010, at 11:01 AM, PalaniKannan K wrote:

Dear all,

I need to apply "find" instead of find_by_sql. Kindly suggest me. Because, params[gm] is not working with find_by_sql. Kindly justify whether my code below is in correct syntax...

find_by_sql("SELECT column1 FROM table WHERE column2 = 'params[gm]' ORDER BY column1")

--
With Regards
Palani Kannan. K
Office: +49-531-2616-226
Mobile: +4917647098166

Well, depending on your version of ActiveRecord (and assuming that your model is called Model)

Rails 2:
Model.find(:all, :select => 'column1', :conditions => { :column2 => params[gm] }, :order => 'column1')

Rails 3:
Model.select('column1').where(:column2 => params[gm]).order('column1').all

But that will give you anemic and readonly instances of Model because they don't have their id column.

If you want fully formed Model instances, don't specify the select part.

If you just want the values of column1, you could do something like:

Model.connection.select_values(Model.send(:sanitize_sql, ["SELECT DISTINCT column1 FROM #{Model.table_name} WHERE column2 = ? ORDER BY column1", params[gm]))

But that's obviously a bit ugly.

Perhaps you should ask with REAL names from your application so that the answers can be made more naturally.

-Rob

Rob Biedenharn          
[email protected]     http://AgileConsultingLLC.com/
[email protected]               http://GaslightSoftware.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 [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