在身份验证后设置具有区域设置的设计路由失败

时间:2016-09-06 15:40:23

标签: ruby-on-rails devise

所以我一直在努力设置我的路线设计如下:

scope '(:locale)' do
  devise_for :users, skip: [:registrations]
  resources :questions
end

但是,当我在控制器中进行身份验证时,如果您没有登录设计,则会将您重定向到localhost:3000/users/sign_in

我期望发生的事情是将我重定向到localhost:3000/en/users/sign_in。我做错了什么或者有什么方法?

1 个答案:

答案 0 :(得分:0)

所以事实证明你不能在你的范围内设置路由,而是需要手动设置它们。至少这对我有用。

devise_for :users, skip: [:sessions]
as :user do
  get ':locale/login' => 'devise/sessions#new', :as => :new_user_session
  post ':locale/login' => 'devise/sessions#create', :as => :user_session
  delete ':locale/logout' => 'devise/sessions#destroy', :as => :destroy_user_session
end

# your normal scope without devise_for in it
scope '(:locale)' do
  resources :questions
end

此后重定向按预期工作。