0
我想根据用户名而不是ID获取自定义路线。我有它的工作,以达到用户的显示页面,但我也试图嵌套资源,以便我可以看到他的帖子和评论使用相同的语法。自定义嵌套路线
例子:
作品... “mysite.com/users/ 用户名 /”
不工作...“mysite.com/users/ 用户名 /职位/”
的routes.rb
...
# Users with the Username...
match 'users/:username' => "users#show" do
get :posts
get :comments
end
# Users with the ID...
resources :users do
get :posts
get :comments
end
...
我以前见过这个解决方案。它看起来像一个黑客,它覆盖了内置的查找方法,并可能导致一堆错误。在rails 3.1中必须有一个更简洁的方法。 – 2011-12-29 22:08:41
这不会以任何方式影响模型的查找方法,所以我不确定可能导致哪些错误。是的,你必须改变你的标准控制器通过用户名找到的发现,但我认为你正在做的反正。这只会覆盖对象的to_param方法,这意味着params [:id]现在将成为用户名。它也会自动使用用户名来建立你的路线。我不确定它是如何得到更清洁的。如果你仍想使用控制器参数中的数字ID,那是不同的故事。 – miked 2011-12-30 01:43:23