我正在使用 Clearance 进行身份验证,并尝试根据用户是否登录来设置 root。登录、注销和创建/删除用户工作正常。
我正在关注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 控制台并检查 Clearance,我没有收到任何错误,因此它正在加载 Clearance 模块,而不是从 lib 加载 SignedInConstraint。
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
根据这张票,我还多次重新启动了我的服务器(运行 Anvil 和 PostgresApp)根据 Github repo 上的
在 Ruby 2.0 上使用 Rails 4。
谢谢