0

タイトルにエラーが表示されます。ルート、コントローラー、およびインデックスを正確に記述する方法がわかりません。

index.html.erb以下に示すビューで「更新」ボタンを作成しようとしています。

...
<td><%= link_to 'Refresh', refreshProfile_affinity_path(a), method: :put %></td>
...

でこのルートを使用していますroutes.rb:

  resources :affinities
  put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile'

で次のメソッドにアクセスしようとしていますaffinities_controller.erb:

...
def refreshProfile
    @affinity = Affinity.find(params[:id])
    new_profile_affinity = User.find(@affinity.user_A_id).profile_affinity_with(User.find(@affinity.user_B_id))

    if @affinity.update_attributes(:integer, new_profile_affinity)
        redirect_to @affinity
    end
end
...

何が間違っている可能性がありますか?どんな助けでも大歓迎です!

4

1 に答える 1

1

ルートにを追加する必要がありas:ます。これは、ヘルパー メソッドのプレフィックスを指定するものであり、現在未定義のメソッド エラーが発生している理由です。

put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile',
  as: 'refreshProfile_affinity'

refreshProfile_affinity_pathまたは、たとえば、より短く、よりスマートな名前を付けas: 'refreshProfile'てから使用することもできますrefreshProfile_path

于 2015-05-11T21:12:03.950 に答える