大多数关于在Rails中美化Urls的教程解释了如何获取像www.example.org/resource/3-some-sluggish-slug
这样的网址,这很容易使用to_param方法。
我想要的是在像Stackoverflow一样(www.example.org/resource/3/some-sluggish-slug
)的Rails 3应用程序中美化Urls。 some-sluggish-slug
可以是任何字符串,只是为了拥有更好的Url并且被所有逻辑(例如Stackoverflow中)忽略。有没有一种简单的方法可以做到这一点?或者我必须在它到达路径文件或路径文件本身之前以某种方式重写Url?
答案 0 :(得分:2)
按照教程,但不是在ID之后使用连字符,而是/
。你需要写一个路线来应对这个问题。
match 'resource/:id', :to => 'resources#show', :id => /\d+\/[a-z0-9\-]+/, :as => 'public_post'
答案 1 :(得分:1)
您必须定义自己的路线;见the Rails guide section 3及以后。