我有一个正在使用Rails 3的Web应用程序,我刚刚为应用程序中的现有资源实现了一些基本的虚荣URL路径。我要做的是不必须明确地在用户的个人资料页面上构建可用资源的网址,例如:我希望能够在视图中使用link_to构建一个URL,格式为:
typealoud.com/:user_id/:thread_id/:comment_id
而不是标准的嵌套资源助手给我的东西,例如:
typealoud.com/threads/:thread_id/comments/:comment_id
我应该自己做URL帮助器,还是现有的gem?
答案 0 :(得分:3)
要做到这一点,我会把它放在我的路线的顶部:
match ':user_id/:thread_id/:id', :to => "comments#show"
我已将此示例中的comment_id
更改为id
,因为它是“The Rails Way”,最后一个id参数简称为id
。它还会缩短代码。
如果您希望获得路由助手,请使用:as
选项:
match ':user_id/:thread_id/:id', :to => "comments#show", :as => "comment"
然后你可以使用comment_path
/ comment_url
来访问路由,但你必须传入三个参数,每个参数都是一个对象或一个对象的id。