У меня есть контроллер рельсов 3 и очень простой файл ruby (.rb) в моем индексном каталоге сервера. Я хотел бы запустить файл из моего контроллера - что это лучший способ сделать это?Запуск внешнего .rb-файла из контроллера rails 3?
ответ
Вы можете попробовать load
: http://www.ruby-doc.org/core/classes/Kernel.html#M001417
Вот один пример
# in your controller
def create
load('/path/to/your/file.rb')
end
Однако, я бы сказал, что это плохая практика вообще звонить на Ruby код из Rails, запустив внешний сценарий. Я думаю, что вам лучше разбить свой файл Ruby на два:
- Тот, который инкапсулирует функциональность скрипта в классах и/или модулях.
- Тот, который вызывает указанные классы/модули из командной строки.
Затем, в вашем приложении Rails, просто require
# 1 и используйте классы/модули.
Например, предположим, что ваш скрипт в настоящее время называется simple.rb и выглядит следующим образом:
# simple.rb
puts 'Hello, world!'
Вы бы затем создать hello_world.rb
и сделать это:
# hello_world.rb
class HelloWorld
def say_it
puts 'Hello, world!'
end
end
Вы бы заменить содержимое simple.rb
с этим:
require 'hello_world.rb'
HelloWorld.new.say_it
Затем в вашем контроле r, вы можете обходить simple.rb
и просто использовать класс HelloWorld
:
Вы хотите, чтобы сценарий запускался в собственном процессе? Если да, проверьте их.
- Фоновые задания: http://codeforpeople.rubyforge.org/svn/bj/trunk/README
- Или delayed_job: https://github.com/tobi/delayed_job
Кроме того, вы можете использовать скрипт бегуна так:
система "RAILS_ENV = # {RAILS_ENV} рубин # {RAILS_ROOT}/скрипт/питателя 'MyModel.my_method (some_param)' & "
& в конце поставит задачу в другой процесс.
- 1. Вызов вспомогательного метода из контроллера Rails 3
- 2. Rails 3 маршрутизация внутри контроллера
- 3. Запуск внешнего EXE из python
- 4. Запуск приложения rails для внешнего ip-адреса
- 5. Запуск внешнего приложения из node.js
- 6. Запуск внешнего скрипта из Access
- 7. Выйти из контроллера rails
- 8. Nodejs - запуск внешнего процесса
- 9. Доступ к переменной из внешнего углового контроллера
- 10. Как получить класс контроллера из представления/помощника в Rails 3?
- 11. Rails 3 Проверка контроллера RSpec Ошибка/ошибка:
- 12. Rails 3 - новый маршрут действия контроллера
- 13. Список маршрутов контроллера в Rails 3?
- 14. Rails 3: значение по умолчанию параметра контроллера
- 15. Абстрактное имя ресурса от контроллера Rails 3
- 16. Rails 3 - вызов метода контроллера с submit_tag
- 17. Rails 3 Понимание контроллера/Маршруты отношения
- 18. Rails 3 URL без имени контроллера
- 19. Rails 3 - Настройка контроллера счета W Просмотры
- 20. Rails 3 - маршрутизация к методу контроллера
- 21. Rails - действие контроллера Rspec 3 с format.js
- 22. Запуск внешнего приложения из моего приложения
- 23. Запуск сервера рельсов в Rails 3
- 24. Rails проблема 3 сервера Запуск с fastercsv
- 25. Запуск логики контроллера без вида
- 26. Запуск внешнего скрипта python из maven
- 27. Запуск внешнего приложения
- 28. Как вызвать функцию из директивы внешнего контроллера?
- 29. Присвоить печенье из контроллера внешнего файла HTML
- 30. Запуск segue из контроллера панели вкладок