Запускать команды Rails вне консоли
С моим большим приложением консоль Rails занимает некоторое время, чтобы загрузить. Есть ли способ более простой команды?
Я также хотел бы иметь возможность автоматизировать материал, а echo "query" | rails console
- отличный способ сделать что-то.
Мысли?
EDIT: Как насчет долговременного процесса, который я могу запросить ping, когда мне нужно?
Ответы
Ответ 1
Существует два основных способа запуска команд вне консоли:
- Rake задача, которая зависит от: окружающей среды
-
rails runner (ранее скрипт/бегун), например:
$ rails runner "query"
Оба довольно хорошо описаны в руководстве по рельсам: http://guides.rubyonrails.org/command_line.html
Кстати: для запуска обоих этих методов все равно потребуется время консоли, но они полезны для неинтерактивных задач.
Ответ 2
Просто пропустите его в:
echo 'puts Article.count' | bundle exec rails c
Теперь он должен быть намного быстрее, чем тогда, когда задан вопрос, из-за Spring. Это не сразу, но все же намного быстрее, чем разворачивание всего приложения. Используйте это для быстрой полосы, он должен работать под вторым (если ваша требуемая команда выполняется быстро):
echo 'puts Article.count' | spring rails c
Если вам действительно нужен один долговременный процесс, вы можете легко сделать это, создав действие контроллера, которое просто запускает все, что у вас есть POST, а затем отправляйте ему команды, используя завиток за псевдонимом. Разумеется, действие будет абсолютно небезопасным и должно быть трехкратно защищено от работы в любом месте рядом с производством, но его было бы легко настроить.