1
我使用Clearance进行身份验证,并试图根据用户是否登录来设置根。登录,注销和创建/删除用户都可以正常工作。“未初始化常量”使用清理路由错误
我正在关注此article from Thoughtbot,我在其中添加了一条约束条件。
# Logged in user
root to: "dashboard#index", constraints: Clearance::SignedInConstraint`
# Visitor
root to: "home#index"
而且我也已经在/ lib /清除创建signed_in_constraint.rb执行检查:
module Clearance
class SignedInConstraint
def self.matches?(request)
request.env[:clearance].signed_in?
end
end
end
如果我打开了轨道控制台,检查间隙,我没有得到任何错误,所以它是加载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
我也重新启动我的服务器(运行铁砧和PostgresApp)多次按this ticket在Github上回购。
在Ruby 2.0上使用Rails 4。
谢谢
谢谢丹 - 我确实在文档中看到了,但是我得到了'ArgumentError:无效的路由名称,已经在使用:'root''。是否需要其他逻辑? – colourgarden
看起来这个(没有重复的名字)有意地被内置到Rails 4中。我现在使用':as'命名路由并且它工作正常。谢谢你的帮助。 [来源](https://github.com/plataformatec/devise/issues/2393) – colourgarden