如何根据标题重写URL?
问题描述:
这是一个相当开放的问题,我只是寻找最好的途径。如何根据标题重写URL?
用户可以发布带标题的链接。而且我希望我的URL用于搜索引擎优化目的来显示这些标题。大致相同的方式,我相信*的作品。
因此,如果标题是“我的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
希望这有助于!
UPDATE
对这个答案的评论表示没有可用于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>
问题是什么? – deamon 2010-12-10 22:21:25