在登录时设计重定向到自定义操作

时间:2013-03-01 10:38:32

标签: ruby-on-rails devise routes

我正在使用Devise进行用户身份验证,并且希望让用户重定向到我为User类设置的名为“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控制器。

1 个答案:

答案 0 :(得分:0)

您无需拨打redirect_to

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

如果这不起作用,请将其包装在url_for中并且应该有效:)