Другой вопрос: почему я должен передавать переменную current_user и friend? возможно ли передать только current_user и id друга?

ужна ссылка для обновления ресурса, без использования формы 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,: method => 'put')%>

Но когда Рельсы встречают эту связь, он пытается войти в действие шоу.
Вопрос в том, какова правильная ссылка для этого?

 Tadas Tamosauskas20 янв. 2011 г., 21:07
Вы пытались добавить параметр действия? <% = link_to "Добавить в друзья", user_friend_path (current_user,: method => 'put,: action =>: update')%> А зачем вам нужен метод put, если вы не передаете какие-либо параметры обновления?

Ответы на вопрос(1)

Решение Вопроса
link_to "Add as friend", user_friend_path(current_user, @friend), :method=> :put

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

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

 Joe20 янв. 2011 г., 21:39
Да, я использую рельсы 3, но это все еще не работает. Я изменил путь к символу, но результат тот же: он все еще пытается получить доступ к действию шоу (получить) ... очень очень странно
 Joe20 янв. 2011 г., 21:41
Другой вопрос: почему я должен передавать переменную current_user и friend? возможно ли передать только current_user и id друга?
 Joe20 янв. 2011 г., 21:21
Я решил, что насчет друга, но он все еще не работает: записывая ваш код, он сообщает мне об ошибке маршрутизации: нет маршрутов: {: action => "show",: controller => "friends",: user_id => # <Идентификатор пользователя: 101}
 Jeppe Liisberg20 янв. 2011 г., 21:30
Вы используете рельсы 3? Я только что попробовал это в одном из моих собственных проектов, используя jquery и jquery-rails, и это сработало. Попробуйте: поставить как символ вместо строки (моя ошибка).
 Joe20 янв. 2011 г., 21:18
У меня нет объекта @friend в этом представлении, у меня просто есть его идентификатор, он не работает.

Ваш ответ на вопрос