link_to update (без формы) - PullRequest
       36

link_to update (без формы)

21 голосов
/ 20 января 2011

Мне нужна ссылка для обновления ресурса без использования HTML-формы.

Маршруты:

resources :users do
resource :profile, :controller=>"profiles"
 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"}

Я хочу использовать пут, чтобы обновить друга по простой ссылке, примерно так:
<% = link_to "Добавить в друзья", user_friend_path (current_user,: метод=> 'put')%>

Но когда Rails встречает эту ссылку, он пытается войти в действие show.
Вопрос в том, какая ссылка для этого нужна.

1 Ответ

36 голосов
/ 20 января 2011
link_to "Add as friend", user_friend_path(current_user, @friend), :method=> :put

Вставит ссылку с атрибутом 'data-method', установленным в 'put', который, в свою очередь, будет поднят javascript rails и превращен в скрытую форму ... Я думаю, это то, что вы хотите.

Вам следует рассмотреть возможность использования: post, поскольку вы создаете новую ссылку между двумя пользователями, а не обновляете ее.

...