Forum: Ruby on Rails Calling Rake from INSIDE the application

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Dante R. (Guest)
on 2008-12-02 04:53
(Received via mailing list)
Hey there
I would like to know if I can call a rake task from inside my Rails App.
Something like

class MyModel < ActiveRecord::Base
  after_save :run_task

  def run_task
    Rake.run("my:little:task")
  end
end

This is the deal: I use thinking-sphinx and need to update a bunch of
data
through Model.update_all. But I would like sphinx to index it just after
I'm
done, by running rake ts:index.

Is that possible?

Thanks,
Dante
Freddy A. (Guest)
on 2008-12-02 09:44
(Received via mailing list)
def run_task
  result = %x(rake #{params[:rake_task]})
end

If you don't want to hold the thread you can install the crontab gem
and install a new crontab with a ts:in or use background-fu and push
the job to the background...
This topic is locked and can not be replied to.