В приложении rails у меня есть специальный URL (/ profile), который я сопоставляю с пользовательским контроллером, чтобы пользователь мог просматривать и редактировать свой профиль.Я сделал следующие записи в моем файле маршрута, чтобы «get» для профиля направил меня к действию профиля в пользовательском контроллере, а «post» для профиля направит к действию update_profile в пользовательском контроллере.
match '/profile', :to => 'users#profile', :via => "get"
match '/profile', :to => 'users#update_profile', :via => "post"
Если я запускаю рейк-маршруты, я вижу следующие две записи
profile GET /profile(.:format) {:controller=>"users", ":action=>"profile"}
profile POST /profile(.:format) {:controller=>"users", ":action=>"update_profile"}
Если я пытаюсь нажать на URL-адрес устройства http://localhost:3000/profile, открывается страница профиля, как и ожидалось.Если я нажимаю кнопку формы, появляется следующая ошибка:
Routing Error
No route matches "/profile"
Глядя на сгенерированный html на начальной странице, я вижу следующий тег формы, поэтому кажется, что действие установлено правильно.
<form accept-charset="UTF-8" action="/profile" class="edit_user" enctype="multipart/form-data" id="edit_user_1" method="post">
Так чего мне не хватает?Посмотрев на вывод о рейк-маршрутах, я предположил, что это будет работать как есть.Я неправильно думаю о своих глаголах http?Любая помощь будет оценена.