ошибка установки user_root для редиректа devise - PullRequest
2 голосов
/ 18 мая 2011

Гол
Когда пользователь отправляет разработанную форму «изменить регистрацию», я хочу перенаправить его пользователям # show, а не в корневой каталог сайта.

Проблема
Следование инструкциям Devise не сработало. Я не хочу настраивать контроллер Devise, поэтому у меня остались две предложенные модификации к route.rb, либо

devise_for :users do
  get 'users', :to => 'users#show', :as => :user_root
end

или

match 'user_root' => 'users#show'

Первый перенаправляет на http://localhost:3000/users после отправки формы редактирования, второй перенаправляет на http://localhost:3000/user_root. Оба выдают ту же ошибку: «Не удалось найти пользователя без идентификатора».

Мои пользователи # show page обычно работают в приложении, так что это не ошибка метода контроллера (или просмотра, конечно). Кажется, это ошибка маршрутизации. У меня есть "resources: users" в моем файле rout.rb, больше ничего о пользователях. Если мне нужно дать больше информации, пожалуйста, дайте мне знать!

Вопрос
Почему в URL не передается идентификатор пользователя?

Ответы [ 2 ]

2 голосов
/ 04 сентября 2012

Участник не работает, но, если вы возьмете это, это работает для меня.+1 к Джейделу за достаточно близко: P

devise_for :users do
  get 'users', :to => 'users#show', :as => :user_root
end

Еще одна вещь, которую я попробовал, также работала:

  devise_scope :user do
    get 'users' => 'users#show', :as => :user_root
  end
2 голосов
/ 18 мая 2011

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

devise_for :users do
  member do
      get 'users', :to => 'users#show', :as => :user_root
  end
end
...