0

根据当前的最佳实践,留言板上给定线程的 RESTful URL 应如下所示:

http://domain/forum/threads/3

URL 应该包含关键字(slug)也是一种常见的 SEO 做法,因此上述 URL 可能会变成:

http://domain/forum/threads/3/title-of-this-particular-thread

现在,再次根据我在第一段中链接到的指南编辑此线程,URL 将是:

http://domain/forum/threads/3/edit

当有人开始一个标题为“编辑”的线程时会发生什么?应该如何决定是否显示或编辑线程?

4

1 回答 1

1

代替http://domain/forum/threads/3/title-of-this-particular-thread

你应该做http://domain/forum/threads/3-title-of-this-particular-thread

这将防止冲突,并且与 SEO 一样友好。有几种方法可以做到这一点,但最简单的方法是在模型中添加一个 to_param 方法来自动进行转换:

class Thread < ActiveRecord::Base
  to_param
    "#{id}-#{title}"
  end
end

如果您需要比这更多的灵活性,或者不想在所有模型中重复它,您可以使用friendly_id Gem。

于 2012-12-03T13:09:26.787 回答