这是一个相当开放式的问题,我只是在寻找最好的途径。
用户可以发布带有标题的链接。我希望我的 URL 用于 SEO 目的来显示这些标题。我相信 stackoverflow 的工作原理与此大致相同。
如果标题是“我的 foobar 刚刚和我的猫亲热”
我希望网址为:www.website.com/posts/My-foobar-just-made-out-with-my-cat
有什么想法吗?
提前非常感谢!!
最佳答案
我在旧的 Rails 2.x 应用程序中使用了它。可能有更好的方法来擦洗标题......
(进入您的模型)
def to_param
seo_uri
end
def seo_uri
"#{self.id}-#{self.title.gsub(/[^a-z0-9]+/i, '-').gsub(/-{2}/, '-').gsub(/-$/, '')}"
end
希望这有帮助!
更新
对此答案的评论表明,Rails 3 用户可以使用一种新方法:#parameterize
。 Rails API document for this method展示了如何使用它(剪切-粘贴):
class Person
def to_param
"#{id}-#{name.parameterize}"
end
end
@person = Person.find(1)
# => #<Person id: 1, name: "Donald E. Knuth">
<%= link_to(@person.name, person_path %>
# => <a href="/person/1-donald-e-knuth">Donald E. Knuth</a>
关于ruby-on-rails - 如何根据标题重写 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413789/