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