0

我正在使用 Devise 进行用户身份验证,并希望将用户重定向到我为名为“myaccount”的用户类设置的自定义操作。但是,我无法正确使用语法 - 我尝试的所有内容都出现了不同的错误。

此代码可能会向您展示我正在尝试实现的目标(尽管它不起作用):

def after_sign_in_path_for(resource)
    redirect_to :controller => 'users', :action => 'myaccount', :id => current_user.id and return
  end

和路线:

 devise_for :users, :controllers => { :registrations => "registrations" }

  devise_for :users 

  resources :users do
    member do
      get 'myaccount'
    end
  end

抱歉,这可能是一个新手问题 - 但我如何更改我的重定向或添加新路由以便例如 user_sign_in_path 可以工作?

谢谢!

更新:

如果其他人发现这个问题,这对我有用:

url_for :controller => '/users', :id => current_user.id, :action => 'myaccount'

这是我需要它的正确顺序。我必须在控制器名称前加上一个斜杠,以使其使用它而不是 Devise 控制器。

4

1 回答 1

0

你不必打电话redirect_to

def after_sign_in_path_for(resource)
  { controller: 'users', action: 'myaccount', id: current_user.id }
end

如果这不起作用,请将其包裹起来,url_for这应该可以工作:)

于 2013-03-01T11:31:51.487 回答