0

メニューに次のリンクがあります。

<li><%= link_to "Change your password", edit_user_registration_path %>

これは私のルートにあります:

devise_for :users

リンクがクリックされると、次のルーティング エラーが発生します。

No route matches {:controller=>"devise/admin"}

私は自分が間違っていることを理解していません。

デバイスルートは次のとおりです。

        new_user_session GET    /users/sign_in(.:format)          devise/sessions#new
        user_session POST   /users/sign_in(.:format)          devise/sessions#create
destroy_user_session GET    /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)
                     PUT    /users(.:format)               devise/registrations#update
                     DELETE /users(.:format)            devise/registrations#destroy
4

4 に答える 4

1

edit_password_url私が間違っていなければ、パスワードの変更リンクへのパスは だと思います。

于 2013-03-05T21:28:12.490 に答える
0

あなたのコードをもっと見ることなく、私が提供できる最善の解決策は、デバイスを取り除いて元に戻すことです。デバイスを作成した生成コマンドを逆にして、railsdコマンドを実行して最初からやり直すだけです。

于 2013-03-05T19:57:26.730 に答える
0

デバイスモデルUserがある場合、このパスを使用してパスワード変更ページにルーティングできます。

edit_user_registration_path

そして、これを次のようにビューで使用できます。

<%= link_to 'Change Password', edit_user_registration_path %>
于 2014-07-23T07:30:52.007 に答える
0

誰のパスワードを編集しているかをレールに伝える必要があります

正しい方法は次のようになります

<li><%= link_to "Change your password", edit_user_registration_path(current_user) %>

current_user は、devise が提供するヘルパーです。それが役に立てば幸い!

于 2013-03-05T22:05:53.900 に答える