Ruby on rails 从作用域控制器为(资源)登录url后

Ruby on rails 从作用域控制器为(资源)登录url后,ruby-on-rails,devise,Ruby On Rails,Devise,我在Users::omniauthcallbackcontroller中,试图在(@user)的url\u中签名后调用重定向到,但是Users/将附加到我的控制器中。我该如何阻止这种情况发生 一些调试: >> after_sign_in_path_for(@user) => {:controller=>"expert_questions", :action=>"index"} >> url_for(after_sign_in_path_for(@user

我在
Users::omniauthcallbackcontroller
中,试图在(@user)的url\u中签名后调用
重定向到,但是
Users/
将附加到我的控制器中。我该如何阻止这种情况发生

一些调试:

>> after_sign_in_path_for(@user)
=> {:controller=>"expert_questions", :action=>"index"}
>> url_for(after_sign_in_path_for(@user))
!! #<ActionController::UrlGenerationError: No route matches {:action=>"index", :controller=>"users/expert_questions"}>
>在(@user)的路径中签名后
=>{:controller=>“专家问题”,:action=>“索引”}
>>url(在(@user)的路径中签名后)
!! #“索引”,:controller=>“用户/专家问题”}>
试试这个:

  def after_sign_in_path_for(user)
    if user.admin
      '/admin'
    else
      '/'
    end
  end

您可以使用url帮助器重定向到
{:controller=>“专家问题”,:action=>“索引”}

def after_sign_in_path_for(@user)
  expert_questions_index_path
end