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.