我构建了一个 Multi-Tenancy 应用程序,并且在两个租户中具有特定的身份验证逻辑,因此我在受限范围内定义了设计路由(以便拥有两组命名空间路由,以及它们自己的 Controller ):
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 助手在我的 Controller 中不可用。
undefined local variable or method `current_user' for #<Geea::Frontoffice::HomeController:0x007fd14d4a36e0>
我该如何应对?
谢谢!
最佳答案
我也遇到了同样的问题。我用版本命名了 api。 Devise 属于命名空间。尝试类似 current_api_v1_user
关于ruby-on-rails - 当设计路由在范围内定义时,未定义的局部变量或方法 `current_user',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24200392/