Я использую устройство для аутентификации в своем приложении rails. Я могу войти и выйти, а также зарегистрироваться. Однако, как только пользователь будет подписан, я хочу предоставить пользователю возможность изменить свой пароль. Для этого приложение предоставляет ссылку на 'edit_user_registration_path', который показан на выходных рейках ниже.rails devise edit_user_registration
Когда пользователь нажимает на ссылку изменить пароль ниже,
<li><%= link_to "Change Password", edit_user_registration_path %></li>
Я получаю следующую ошибку
ActionController::RoutingError (No route matches {:action=>"edit", :controller=>"users"}):
У меня есть UsersController с шоу, редактировать и обновлять действия. Действие редактирования заключается в обновлении других столбцов модели Users.
Маршруты устанавливаются ниже выхода маршрута
devise_for :users
resources :users, only: [:show, :edit, :update]
грабли -
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
root / home#index
Бревно консоль ниже
Started GET "https://stackoverflow.com/users/edit" for 127.0.0.1 at 2013-02-21 15:21:38 +0530
Processing by Devise::RegistrationsController#edit as HTML
User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
Rendered devise/registrations/edit.html.erb within layouts/application (15.9ms)
Rendered layouts/_shim.html.erb (0.0ms)
Rendered layouts/_messages.html.erb (0.1ms)
Rendered layouts/_header.html.erb (42.5ms)
Completed 500 Internal Server Error in 99ms
ActionController::RoutingError (No route matches {:action=>"edit", :controller=>"users"}):
app/views/layouts/_header.html.erb:22:in `_app_views_layouts__header_html_erb__267315279__621159918'
app/views/layouts/application.html.erb:20:in `_app_views_layouts_application_html_erb__982964301_89714280'
Не могли бы вы показать нам: приложение/просмотров/макеты/_header.html.erb: 22 – Leito
Я считаю, вы вызываете edit_user_path самостоятельно, без указания того, какой пользователь должен редактировать. – Leito
Как вы уже догадались, я использую edit_user_path. Что-то не так с этим? как указать здесь пользователя?