2013-06-19 6 views
0

борется за несколько часов на этом сейчас. Я включил драгоценный камень Devise в проект Rails после первоначальной разработки собственной системы auth, но я столкнулся с проблемой, которую я не могу понять.Ruby on Rails Devise after_sign_in_path_for вызывает не связанный контроллер

Когда пользователь подписывает в методе:

def after_sign_in_path_for(resource_or_scope) 
    user = resource_or_scope 
    user_path(user.username) 
end 

Событие происходит перенаправление пользователя к своему профилю.

У меня есть пользовательский маршрут редактирования, который выводит пользователя на страницу, в которой они могут редактировать свои данные и добавлять «желаемый элемент». Две отдельные формы с двумя отдельными контроллерами и действиями.

Метод «добавить желаемый элемент» отправляется на другой контроллер, который отображает вид под названием WantsController и добавляет желаемый элемент для пользователя через ассоциацию.

По какой-то причине при отправке этой формы вызывается метод after_sign_in_path_for? Это не имеет ничего общего с подписанием в ...

Вот мои маршруты:

#users/auth 
    devise_for :users, :skip => [:sessions, :registrations] 
    devise_scope :user do 

     # registration 
     get "/signup", to: "users#new", as: :sign_up 
     post "/signup", to: "users#create", as: :sign_up_create 

     # account 
     get "/:username/account", to: "users#edit", as: :user_account 
     put "https://stackoverflow.com/users/:id", to: "users#update", as: :user_update 

     # shows 
     get "/:username", to: "users#show", as: :user 
     get "/:username/interests", to: "users#interests", as: :user_interests 
     get "/:username/offers", to: "users#offers", as: :user_offers 
     get "/:username/trades", to: "users#trades", as: :user_trades 

     # auth 
     post "/signin" => 'devise/sessions#create', as: :sign_in 
     delete "/signout", to: "devise/sessions#destroy", as: :sign_out 

     #wants 
     resources :wants, only: [:create, :destroy] 

    end 

Если я помещаю wants ресурс вне сферы DEViSE (что, где я ожидаю, что это должно идти) я получаю следующее:

не удалось найти отображение разработать для пути «/ хочет»

Что здесь происходит? Тупик!

Спасибо.

ответ

0

Argh, глупые ошибки. Почему после нескольких часов борьбы, когда вы отправляете вопрос о переполнении стека, вы выясняете это через 5 минут ?!

Я скопировал и ввел свой регистрационный контроль в файл WantsController, чтобы сохранить ввод кода контроллера, но забыл сделать его наследованием от ApplicationController, а не Devise :: RegistrationsController.

Урок: не копируйте и не вставляйте!

Смежные вопросы