Link_to update (без формы)
Я хочу ссылку для обновления ресурса без использования 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"}
Я хочу использовать put для обновления друга по простой ссылке, примерно так:
<% = link_to "Добавить как друга", user_friend_path (current_user,: method = > 'put')% >
Но поскольку Rails встречает эту ссылку, он пытается войти в шоу-действие.
Вопрос: какова правильная ссылка для этого?
Ответы
Ответ 1
link_to "Add as friend", user_friend_path(current_user, @friend), :method=> :put
Введет ссылку с атрибутом 'data-method', установленным на 'put', который, в свою очередь, будет подхвачен javascript rails и превратится в форму за кулисами... Я предполагаю, что вы хотите.
Вам следует рассмотреть возможность использования: post, так как вы создаете новую ссылку между двумя пользователями, а не обновляете ее. Кажется.