Rails + Devise: перенаправление на ресурс пользователя - PullRequest
2 голосов
/ 20 июня 2011

Когда мой application_controller.rb перенаправляет на users_path следующим образом:

def after_sign_in_path_for(resource)
    users_path
end

редирект работает. Но если я изменю это на user_path:

def after_sign_in_path_for(resource)
    user_path
end

Я получаю ошибку маршрутизации. Вот мои маршруты.rb:

devise_for :users
get "users/show"

resources :orders

resources :users do
    resources :orders
end

Я подумал, что, возможно, мне следует передать идентификатор пользователя следующим образом:

def after_sign_in_path_for(resource)
    @user = User.find(params[:id])
    user_path(@user)
end

но ошибка возвращается Couldn't find User without an ID. Помощь

Ответы [ 2 ]

7 голосов
/ 20 июня 2011

Я думаю, вы должны попробовать current_user после входа в систему

user_path(current_user)
1 голос
/ 12 ноября 2012

Я потратил несколько часов, пытаясь получить ту же функциональность, и вот код в ApplicationController, который закончил работать на меня:

def after_sign_in_path_for(resource)
    current_user
end

Если я когда-либо пробовал current_user_path, я всегда получал undefined local variable or method current_user_path ошибок.

Также я использую Rails 3.2.8 и Devise 2.1.2.

Надеюсь, это поможет.

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