Подтвердить что ты не робот

Запускать команды Rails вне консоли

С моим большим приложением консоль Rails занимает некоторое время, чтобы загрузить. Есть ли способ более простой команды?

Я также хотел бы иметь возможность автоматизировать материал, а echo "query" | rails console - отличный способ сделать что-то.

Мысли?

EDIT: Как насчет долговременного процесса, который я могу запросить ping, когда мне нужно?

4b9b3361

Ответ 1

Существует два основных способа запуска команд вне консоли:

  1. Rake задача, которая зависит от: окружающей среды
  2. 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, а затем отправляйте ему команды, используя завиток за псевдонимом. Разумеется, действие будет абсолютно небезопасным и должно быть трехкратно защищено от работы в любом месте рядом с производством, но его было бы легко настроить.