Forum: Ruby on Rails Run rake tasks from the controller

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.
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-02-09 21:48
(Received via mailing list)
Hello,

How can I run rake tasks from the controller and send extra params to
it too? Thanks,

Elías
C0dd31d9c6d343ca4ec4428a7a76ace7?d=identicon&s=25 K. R. (ribit)
on 2009-02-09 21:53
Why do you run rake tasks in the controller? controllers are not really
good to execute rake tasks. move it into the model and call it from the
controller.




Elias Orozco wrote:
> Hello,
>
> How can I run rake tasks from the controller and send extra params to
> it too? Thanks,
>
> El�as
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-02-09 21:56
(Received via mailing list)
Good,

But how can I call a rake task from the model, and send some extra
params to it?

Thanks,

Elías
C0dd31d9c6d343ca4ec4428a7a76ace7?d=identicon&s=25 K. R. (ribit)
on 2009-02-09 22:01
For example with BJ, so the webserver is no permanently in use...

- Bj.submit "cmd.exe /c rake kipf:convert_movie id=#{id}" in windows
- Bj.submit "system rake kipf:convert_movie id=#{id}" in linux (not
sure)



Elias Orozco wrote:
> Good,
>
> But how can I call a rake task from the model, and send some extra
> params to it?
>
> Thanks,
>
> El�as
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-02-09 22:06
(Received via mailing list)
Maybe is good to explain what I am trying to do a little more. I want
to create a directory (folder) for a particular user when he/she
creates an account in my website. That will be the folder were all the
things he/she uploads will be stored. So I want to run a rake task
that will create the user folder once he registers. So the idea is to
have a rake task on an observer and pass the user business name that
will be used to name the folder.

I hope I explained myself.

Thanks
C0dd31d9c6d343ca4ec4428a7a76ace7?d=identicon&s=25 K. R. (ribit)
on 2009-02-09 22:12
But why do you not use the 'ftools' of ruby? so you can forgot the rake
task.

Create a folder:
FileUtils.mkdir_p 'name'

Destroy a folder:
FileUtils.rm_rf(path)


With after_save you can call the method who use .mkdir and with
after_destroy .rm_rf...

for example:
after_save :create_folder
after_destroy :destroy_folder

private
def create_folder
  FileUtils.mkdir_p 'name'
end

def destroy_folder
  FileUtils.rm_rf(path)
end






Elias Orozco wrote:
> Maybe is good to explain what I am trying to do a little more. I want
> to create a directory (folder) for a particular user when he/she
> creates an account in my website. That will be the folder were all the
> things he/she uploads will be stored. So I want to run a rake task
> that will create the user folder once he registers. So the idea is to
> have a rake task on an observer and pass the user business name that
> will be used to name the folder.
>
> I hope I explained myself.
>
> Thanks
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-02-09 22:21
(Received via mailing list)
Great, great stuff, thanks a lot guys! I was thinking about using the
ftools, but doubt overcame me. I'm never too sure which approach I
must take. Thanks again for your input.
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-02-17 17:31
(Received via mailing list)
I ran this approach to FAILSAFE the file creation. What do you guys
think:

    def create_directory
      FileUtils.mkdir_p RAILS_ROOT+"/public/#{self.name}"
      unless File.directory?(RAILS_ROOT+"/public/#{self.name}")
        raise "#{self.name} folder couldn't be created"
      end
    end
This topic is locked and can not be replied to.