У меня есть класс контроллера (peopleController) с тремя действиями: new, list и show. Действие списка показывает всех лиц (взятых из базы данных). Действие шоу показывает одного человека. Это мой файл routes.rb:
People::Application.routes.draw do
get "persons/new"
get "persons/list"
root "persons#new"
resources :persons
end
И вывод rake routes
:
Prefix Verb URI Pattern Controller#Action
persons_new GET /persons/new(.:format) persons#new
persons_list GET /persons/list(.:format) persons#list
root GET / persons#new
persons GET /persons(.:format) persons#index
POST /persons(.:format) persons#create
new_person GET /persons/new(.:format) persons#new
edit_person GET /persons/:id/edit(.:format) persons#edit
person GET /persons/:id(.:format) persons#show
PATCH /persons/:id(.:format) persons#update
PUT /persons/:id(.:format) persons#update
DELETE /persons/:id(.:format) persons#destroy
Теперь со страницы вроде persons/18
(page: people / show с id = 18) я хотел бы добавить кнопку, которая перенаправляет на страницу списка:
<%= button_to "List All", :action => "list" %>
Проблема в том, что нет маршрута к persons/18/show_all
, но я бы перенаправил его на people / list. Следует ли мне изменить файл routes.rb (если да, то как?) Или есть способ «сообщить кнопке», куда именно следует перенаправить?
2 ответа
Это не вариант использования кнопки.
Просто используйте простую ссылку
link_to "List all", persons_list_path
Вы всегда можете украсить ссылку на любой стиль, например, кнопку.
Попробуйте использовать link_to
и помощник persons_list_path
вместо :action => "list"
:
<%= link_to "List All", persons_list_path %>
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.