Rails 设计根,命名空间和身份验证有什么区别?



在Rails 3.2应用程序中,我使用Devise设置了两个用户模型:Admin和user。

我在路由文件中定义了一个管理员特定的根页面。

namespace :admin do
    root :to => "pages#welcome"
end

我也看到这个写为

authenticated :user do
  root :to => 'pages#welcome'
end

我还没有找到使用namespaceauthenticated之间的区别的明确描述,以及这可能对安全性有什么影响。

如果有人能启发我,或者给我一个清晰的描述,我将不胜感激。

谢谢!

  • 命名空间路由将始终存在,这意味着您可以始终调用/管理员,它将路由到页面#welcome
  • 只有当:用户登录时,经过身份验证的路由才会存在

我用它来创建一个root_path,它是登录用户的仪表板,但市场营销页面#欢迎非登录用户:

authenticated :user do
  root :to => 'profile#show'
end
root :to => 'pages#welcome'

这里有一个为方法authenticated设计文档的链接,它应该可以回答您的问题:http://rdoc.info/github/plataformatec/devise/ActionDispatch/Routing/Mapper#authenticated-instance_method

最新更新