我构建了一个多租户应用程序,并且我在两个租户中具有特定的身份验证逻辑,因此我在约束范围内定义了设计路由(为了拥有两组命名空间路由,并拥有自己的控制器):
scope(as: 'geea', module: 'geea', constraints: TenantConstraint.new('geea')) do
devise_for(:users, {
encryptor: :md5,
controllers: {
confirmations: 'geea/users/confirmations',
sessions: 'geea/users/sessions',
registrations: 'geea/users/registrations',
omniauth_callbacks: 'geea/users/omniauth_callbacks',
passwords: 'geea/users/passwords'
}
})
devise_scope :user do
namespace :backoffice do
get 'signin', to: 'sessions#new', as: 'new_user_session'
post 'signin', to: 'sessions#create', as: 'user_session'
delete 'signout', to: 'sessions#destroy', as: 'destroy_user_session'
end
end
end
问题是导致Devise助手无法在我的控制器中使用。
undefined local variable or method `current_user' for #<Geea::Frontoffice::HomeController:0x007fd14d4a36e0>
我怎么处理它?</ p>
谢谢!
答案 0 :(得分:3)
我遇到了同样的问题。我用一个版本命名api api。 Devise属于命名空间。尝试类似current_api_v1_user
的内容