2016-03-16 5 views
0

Я пытаюсь открыть консоль Rails и запустить в ней рубиновый скрипт. Скрипт отлично работает до тех пор, пока консоль рельсов не откроется, и тогда ничего не произойдет. Только тогда, когда я выйти из консоли вручную, я получаю сообщение об ошибке сказав:Не удалось открыть консоль рельсов и запустить скрипт

-bash: load: command not found 

Эти команды я использую:

source /etc/profile 
source /etc/default/<my-app> 
cd /usr/share/<my-app> 
NO_AUTH=Y bundle exec ruby-flo -S rails console 
load '/home/sirish.aditya/test_code.rb' 

Как загрузить скрипт в консоли?

+0

вам нужно выполнить этот рубиновый скрипт при открытии оболочки или вам нужно запустить этот скрипт после запуска консоли Рельсы ли? Кроме того, вам нужно запустить этот скрипт с помощью приложения rails или автономного рубинового интерпретатора? –

+0

Я пытаюсь настроить cron для вызова определенного метода в моем приложении rails. Для этого я пытаюсь загрузить весь код в консоль rails, а затем вызывать метод из сценария, чтобы я мог запланировать его. –

+0

Почему бы вам не попробовать [rails runner] (http://guides.rubyonrails.org/command_line.html#rails-runner) для этого же. Или вы можете использовать [когда] (https://github.com/javan/whenever) драгоценный камень. –

ответ

0

Вы можете использовать этот

echo "$(ruby /home/sirish.aditya/test_code.rb)" 

согласно вам требования, вы можете даже попробовать rails runner или whenever камень.

+0

Hi Rohit, Даже когда я делаю то, что вы предлагаете, программа не загружается. Только на выходе я вижу сообщение: производственной среды Загрузки (Rails 3.2.21) IRB (основной): 001: 0> выход В test_code.rb - test_code работает –

+0

@SirishAditya Не забудьте удалить, что 'load'. Также отправьте это изменение в свою рабочую оболочку или перезапустите свою оболочку. –

+0

Да, я сделал это. Это мой source.rb Сейчас: 'code' источник/и т.д./профиль источник/и т.д./по умолчанию/Ф.К.-поставщик-портал источник /home/sirish.aditya/test_code.rb кд/USR/доли/Ф.К. -supplier-портал NO_AUTH = Y расслоение Exec рубиново-фло -S рельсы консоли эхо "$ (рубин /home/sirish.aditya/test_code.rb)" 'code' И test_code.rb это #!/USR/bin/ruby ​​ puts "in test code- test_code запущен" Но все же мой вывод: Загрузка производственной среды (Rails 3.2.21) irb (main): 001: 0> exit в тестовом коде: test_code запущен –

0

Это не работает. Как только rails console вызывается либо вручную, либо через bash script, вы по существу запускаете отдельный процесс, который не имеет видимости в последующих операциях (например: загрузка).

При выходе из rails console то процесс выполнения возвращается к основному процессу (который bash), который не имеет ни малейшего представления, что load средства и не удается.

Вы должны использовать rails runner или обычай rake task за то, чего вы хотите достичь.

0

Это работает:

cd /usr/share/<my-app>; source /etc/default/<my-app>; 
cat ~/test_code.rb | NO_AUTH=Y bundle exec ruby-flo -S rails console 
Смежные вопросы