> Do something like this, but not so hackish, and that takes into  
> account associations and joins...

Easier said than done ;) But thanks for the thought.




>
> config/environment.rb:
>
> class ActiveRecord::Base
>    def self.return_sql(options)
>      construct_finder_sql(options)
>    end
> end
>
> Then...
>
> $ ./script/runner "puts Occupation.return_sql(:conditions => 'id IN  
> (1,2,3)', :order => 'title')"
> SELECT * FROM "occupations"     WHERE (id IN (1,2,3))  ORDER BY title
>
> Take a look at rails/activerecord/lib/active_record/base.rb line 1427  
> "def find_every" and just follow it through.  Also line 558 "def  
> construct_finder_sql(options)" is relevant.
>
> On Sep 17, 2008, at 4:13 PM, postscript07 wrote:
>
>
>
> > Phillip, I don't think this is quite the same thing... am I right that
> > in your function I still have to provide the sql statement myself?
> > Rather, I am looking for a way of getting the sql generated by an
> > ActiveRecord statement..
>
> > On Sep 17, 11:45 pm, Phillip Koebbe <[EMAIL PROTECTED]>
> > wrote:
> >> A while ago, I had a similar need. I wanted to get the sql back but
> >> wanted it to execute as well. I came up with this:
>
> >> # get the query back from ActiveRecord
> >> class ActiveRecord::Base
> >>   def self.find_by_and_return_sql(sql)
> >>     sanitized_sql = sanitize_sql(sql)
> >>     return find_by_sql(sanitized_sql), sanitized_sql
> >>   end
> >> end
>
> >> This is just for find_by_sql, but you might be able to adapt it for  
> >> the
> >> other finders.
>
> >> Just put it in a file that gets loaded. I have a  
> >> custom_extensions.rb in
> >> lib that I use for stuff like this.
>
> >> Peace.
> >> --
> >> Posted viahttp://www.ruby-forum.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