Редактирование текущего пользователя в Rails 3 - PullRequest
0 голосов
/ 03 апреля 2011

Пользователи могут быть отредактированы с обычным ресурсным URI, например:

/users/1/edit

Проблема в том, что в моем приложении страница редактирования пользователя - это домашняя страница или корневой маршрут.1006 * Итак, я попытался установить @user для текущего пользователя в отсутствие params[:id].

# app/controllers/users_controller.rb

def edit
  @user = (params[:id]) ? User.find_by_id(params[:id]) : @current_user
end

К сожалению, у меня возникают проблемы с правильной настройкой формы.

# app/views/shared/_manage_users.rb

<%= form_tag follow_user_path, :id => 'update-following-form' %>

Я получаю:

No route matches {:action=>"follow", :controller=>"users"}

follow является маршрутом-членом пользовательского ресурса и имеет соответствующий метод контроллера.Если я захожу на страницу через URI в верхней части этого вопроса, /users/1/edit, все работает нормально и не выдается никакой ошибки.

Я не уверен, что я поступаю по этому поводу совершенно неправильноили если я просто не использую правильный помощник формы или что-то глупое. Как я могу исправить эту проблему, или какие шаги я могу выполнить, чтобы отладить ее?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2011

Маршрут члена ожидает, что член будет передан в качестве аргумента.Ваш маршрут ожидает пользователя, например:

follow_user_path(@user)
1 голос
/ 03 апреля 2011

Я думаю, что вам действительно нужно определить follow_user в вашем маршруте.=>: follow_user

1 голос
/ 03 апреля 2011

в ваших маршрутах сделайте это

resource :user

вместо

resources :users

, теперь параметр id не указан в URL.вам просто нужно убедиться, что пользователь вошел в систему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...