ruby-on-rails - 当设计路由在范围内定义时,未定义的局部变量或方法 `current_user'

标签 ruby-on-rails devise

我构建了一个 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/

相关文章:

ruby-on-rails - Rails 4 中的 session 和 cookie 是如何工作的?

devise - 无法将第一个用户插入 Rails/devise 用户表

security - 集成 Devise、Doorkeeper 和 OAuth2 的最佳方式是什么?

ruby-on-rails - 分发 Ruby on Rails 应用程序

ruby-on-rails - 一起搜索 ID 和字符串

ruby-on-rails - 需要Redmine插件

ruby-on-rails - Rails cache_digests touch has_many 关联

ruby-on-rails - 如何配置设备以使用自定义电子邮件布局?

ruby-on-rails - 摆脱 ActionController::InvalidAuthenticityToken(Rails 3,webrick,设计)

mysql - Rails 4.1、Ruby 2.1、Devise,为什么我的 .where() 中有多个条件的 'syntax error, unexpected tConstant'?