像Urls with Rails的Stackoverflow

时间:2011-05-24 12:13:28

标签: ruby-on-rails url slug

大多数关于在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?

2 个答案:

答案 0 :(得分:2)

按照教程,但不是在ID之后使用连字符,而是/。你需要写一个路线来应对这个问题。

  match 'resource/:id', :to => 'resources#show', :id => /\d+\/[a-z0-9\-]+/, :as => 'public_post'

答案 1 :(得分:1)

您必须定义自己的路线;见the Rails guide section 3及以后。