在这个关于设计中路由的问题的答案中:设计和自定义 Rails 用户 URL 有一行代码:
match '/:user' => "users#show", :as => :user_profile
这显然适用于提问者,但不适用于我。我最终得到
NoMethodError in UsersController#show
undefined method `books' for nil:NilClass
当我去 localhost:3000/ username而不是 localhost:3000/user/ username。根据我的路由文件,我假设是因为上面的匹配行无法正常工作,并且该 url 没有引用任何用户。
第二个 url 将我路由到用户的显示页面,但我不希望 url 中出现额外的/user。
所以我试图弄清楚'/:user'、:as和:user_profile的确切含义,因为我认为我应该在这里替换一些特定于我的应用程序的东西。我认为:as是某种别名方法。我在设计文档中找不到关于名为user_profile的路线的任何内容。而且我不知道'/:user'指的是什么。用户对象的实例?我用来指代特定用户的数据库中的用户属性/唯一列?(我为我的用户定义的 url使用永久链接)。