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