0

このコードをアプリケーションレイアウトで試しています。画面上部の「ユーザーナビゲーション」バーです。

<%= link_to "My Profile", edit_profile_path, :class => "user_nav_button" %>

私は得ています

{:action => "edit"、:controller=>"profiles"}に一致するルートはありません

ただし、レーキルートは次のことを示しています。

edit_profile GET / profiles /:id / edit(。:format)profiles#edit

/ profiles / 1 / editに直接アクセスすると、ビューが機能し、link_toが表示されます.........。

paramsが正しく取得されないことと関係があると思います...私はdevise/cancan / rolifyを使用しており、current_user.idが私のparamです。

4

2 に答える 2

3

そのパスメソッド呼び出しには、オブジェクトのインスタンスが必要です。そうしないと、Railsは編集するユーザープロファイルを認識せず、推測もしません。

edit_profile_path(@user) # Where @user is an instance of a User model from your controller
于 2013-01-17T03:15:06.977 に答える
1

IDをアドレスバーに表示したくない場合は、IDなしで/ profile / editなどに新しいルートを追加し、コントローラーでcurrent_userのIDを取得する必要があります。

それ以外の場合は、上記のpatrickmcgrawのようにedit_profile_path(@user)を使用します

于 2013-01-17T03:19:00.077 に答える