Вам нужно будет выполнить четыре шага, чтобы достичь своего «сценария». Прежде всего, я рекомендую вам прочитать о шаблоне Rails-сервисов для лучшей практики. На мой взгляд, это соответствует вашим потребностям.
Шаг за шагом:
Создайте контроллер для обработки запроса
С помощью простой команды оболочки вы можете создать контроллер. Откройте папку проекта и введите что-то вроде ( см. Команды оболочки для лучшего понимания ):
rails g controller hello
Итак, теперь у вас будет новый контроллер с именем 'HelloController' внутри папки контроллера (app/controllers/hello_controller.rb
). Вы можете проверить это и заметить, что у него нет методов. Сначала создайте метод (ниже я сделал метод с именем index
) для последующего запуска вашего сервиса (который будет содержать ваш скрипт). Таким образом, у вас есть контроллер, подобный следующему:
class HelloController < ApplicationController
def index
# Your service goes here
end
end
Создайте правило маршрутизатора для направления запроса на созданный контроллер
Получите доступ к файлу config/routes.rb
и добавьте в него следующую строку:
resources :hello, only: %i[index]
Если вы хотите больше узнать о DSL-маршрутизации Rails, вы можете проверить это здесь .
Создать службу
Чтобы создать указанный сервис для запуска желаемого сценария, я рекомендую вам следовать инструкциям , данным Амином Шахом. Нет причин повторять сказанное.
Обновление вида
Теперь вам просто нужно создать ссылку для выполнения запроса GET к вашему созданному маршруту. Вы можете использовать Rails link_to helper . Что-то вроде:
<%= link_to "Button", hello_index_path, class: "btn btn-primary" %>