使用间隙"uninitialized constant"路由错误



我正在使用清除进行身份验证,并尝试根据用户是否登录来设置根。 登录、注销和创建/删除用户工作正常。

我正在关注 Thoughtbot 的这篇文章,其中我为我的路线添加了一个约束。

# Logged in user
root to: "dashboard#index", constraints: Clearance::SignedInConstraint`
# Visitor
root to: "home#index"

我还在/lib/clearance 中创建了 signed_in_constraint.rb 来执行检查:

module Clearance
  class SignedInConstraint
    def self.matches?(request)
      request.env[:clearance].signed_in?
    end
  end
end

如果我打开 rails 控制台并检查清除,我没有收到任何错误,因此它正在加载清除模块,而不是从库加载登录约束。

rails console
Loading development environment (Rails 4.0.0)    
irb(main):001:0> Clearance
=> Clearance
irb(main):002:0> Clearance::SignedInConstraint
NameError: uninitialized constant Clearance::SignedInConstraint

我还根据 Github 存储库上的这张票多次重新启动了我的服务器(运行 Anvil 和 PostgresApp)。

在 Ruby 2.0 上使用 Rails 4。

谢谢

约束现在内置在 Cleark 中。您可以执行以下操作:

constraints Clearance::Constraints::SignedIn.new { |user| user.admin? } do
  root to: 'admin'
end
constraints Clearance::Constraints::SignedIn.new do
  root to: 'dashboard'
end
constraints Clearance::Constraints::SignedOut.new do
  root to: 'marketing'
end

祝你好运!

相关内容

  • 没有找到相关文章

最新更新