Добавить новое действие просто. Все, что вам нужно сделать, это добавить метод на геймпаде, как, например:
# app/controllers/dummy_controller.rb
def get_back
logger.warn "It works!"
redirect_to :back
end
Теперь, чтобы быть в состоянии получить доступ к этой акции throgh в URL, вам нужно иметь маршрут для этого. Это делается в файле config/routes.rb
. Вы можете добавить его как жесткий маршрут, например
get '/go_back', to: "dummy#get_back"
Это самый простой маршрут. Но вы можете хотеть, чтобы он вел себя как спокойный маршрут. Это полезно, если вы выполняете действие над одной или несколькими моделями. Так что ваши в файле маршрута, вы будете иметь что-то вроде этого:
resources :dummy do
collection do
get 'get_back'
end
end
Это позволяет принимать get
метод над коллекцией. У вас будет помощник dummy_go_back_url
, и для перехода на эту страницу будет /dummies/go_back
.
Это предназначение для работы над набором ресурсов. Если вы действуете на одном конкретном объекте, вы должны указать member
действие:
resources :dummy do
member do
get 'get_back'
end
end
Поскольку действие член только для одного объекта, вы будете иметь URL как /dummies/123/go_back
. Это автоматически установит переменную params[:id]
в ваш контроллер на 123
, что позволит вам легко получить ваш объект. Кроме того, метод помощника dummy_go_back_path
определен и получил один объект или идентификатор в качестве параметра для генерации правильного URL-адреса.
Это самые простые маршруты, которые вы можете иметь, но вы можете посмотреть в routing outside in из направляющих рельсов в качестве надежного источника информации.
Лучший ответ, который я мог найти в Интернете. Ты жжешь! – SsouLlesS
@SsouLlesS рады помочь :-) – fotanus