Запуск скрипта Ruby из контроллера Rails

У меня есть очень простой веб-сайт, на котором пользователь вводит текст в форму текстового поля и отправляет этот текст. Затем текст должен быть параметром для сценария Ruby, который, в свою очередь, будет возвращать данные на основе этого предоставленного текста.

Мои вопросы:

  1. Можете ли вы выполнить сценарий Ruby из контроллера?
  2. Если да, что, если этому Ruby-скрипту потребуется несколько минут, прежде чем он вернет данные? Задержка работы?
  3. Могу ли я вместо запуска сценария Ruby импортировать функцию из этого сценария Ruby в свой контроллер?

Я все еще новичок в Rails, поэтому благодарю вас за любые предложения.


person Amorees    schedule 19.12.2014    source источник
comment
1. Да. 2. delayed_job (или его альтернативы) — хорошая идея. 3. Да.   -  person roob    schedule 19.12.2014


Ответы (1)


Можете ли вы выполнить сценарий Ruby из контроллера?

Да, вы можете, так как скрипты являются внешними, например:

system('script.rb')

Но, конечно, лучше встроить скрипт в приложение Rails.

Если да, что, если этому Ruby-скрипту потребуется несколько минут, прежде чем он вернет данные? Задержка работы?

Конечно, отложенная работа, см. здесь, как это сделать.

Могу ли я вместо запуска сценария Ruby импортировать функцию из этого сценария Ruby в свой контроллер?

Конечно да, и этот путь предпочтительнее, но в любом случае, если это доступно для реализации.

person Малъ Скрылевъ    schedule 19.12.2014