# Calling a Rails action from the command line

**URL:** <https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952>\
**Category:** Rails\
**Created:** [July 9, 2007, 10:11pm UTC](https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952 "2007-07-09T22:11:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Effie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/58f4c7/32.png) [@Effie](https://www.ruby-forum.com/u/Effie)\
**Post date:** [July 9, 2007, 10:11pm UTC](https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952/1 "2007-07-09T22:11:48Z")

</div>

Anyone knows how to call a Rails action from the command line?

I have an action that would update the database. I can call it from a  
web browser:  
[http://localhost:3000/radar/update\_radar](http://localhost:3000/radar/update_radar)

I want to create a cron job that would do this regularly

Thanks

Effie

---

<div class="post-metadata">

**Author:** ![Effie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/58f4c7/32.png) [@Effie](https://www.ruby-forum.com/u/Effie)\
**Post date:** [July 9, 2007, 10:29pm UTC](https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952/2 "2007-07-09T22:29:58Z")

</div>

Effie wrote:

> Anyone knows how to call a Rails action from the command line?
> 
> I have an action that would update the database. I can call it from a  
> web browser:  
> [http://localhost:3000/radar/update\_radar](http://localhost:3000/radar/update_radar)
> 
> I want to create a cron job that would do this regularly
> 
> Thanks
> 
> Effie  
> There’s probably a more dignified way of doing it, but…

ruby script/runner ‘require “open-uri”;  
open(“[http://localhost:3000/radar/update\_radar](http://localhost:3000/radar/update_radar)”)’

…ought to do it!

---

<div class="post-metadata">

**Author:** ![Effie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/58f4c7/32.png) [@Effie](https://www.ruby-forum.com/u/Effie)\
**Post date:** [July 9, 2007, 10:30pm UTC](https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952/3 "2007-07-09T22:30:51Z")

</div>

The proper way of doing this is to pull out the update code into a  
library  
(class under lib/), say RadarUpdater in lib/radar\_updater.rb. Then you  
can  
access it easily from both a Controller and it’s accessible from the  
outside.

Your cron-job would look like:

- 
  - 
    - 
      - 
        - ruby /path/to/rails/deploy/script/runner -e production "  
RadarUpdater.run"

and Controller:

def some\_action  
RadarUpdater.run  
end

Jason

---

<div class="post-metadata">

**Author:** ![Effie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/58f4c7/32.png) [@Effie](https://www.ruby-forum.com/u/Effie)\
**Post date:** [July 9, 2007, 10:31pm UTC](https://www.ruby-forum.com/t/calling-a-rails-action-from-the-command-line/108952/4 "2007-07-09T22:31:16Z")

</div>

> ruby script/runner ‘require “open-uri”;  
> open(“[http://localhost:3000/radar/update\_radar](http://localhost:3000/radar/update_radar)”)’
> 
> …ought to do it!

Without the new line!
