22

HTML フォームを使用せずに、リソースを更新するためのリンクが必要です。

ルート:

resources :users do
  resources :friends
end    

レーキ ルート:

 user_friend GET /users/:user_id/friends/:id(.:format){:action=>"show", :controller=>"friends"}
             PUT /users/:user_id/friends/:id(.:format){:action=>"update", :controller=>"friends"}

put を使用して、次のような単純なリンクで友達を更新したいと思います。

<%= link_to "Add as friend", user_friend_path(current_user, :method=>'put') %>

しかし、リンクをクリックすると、show アクションに入ろうとします。

これを行う正しい方法は何ですか?

4

2 に答える 2

38
link_to "Add as friend", user_friend_path(current_user, @friend), :method=> :put

属性「data-method」が「put」に設定されたリンクを挿入します。これは、Rails JavaScript によって取得され、舞台裏でフォームに変換されます...それがあなたが望むものだと思います。

:post の使用を検討する必要があります。これは、2 人のユーザー間に新しいリンクを作成しているためであり、更新していないようです。

于 2011-01-20T20:09:25.107 に答える