创建新帖子时,如何在控制器中将“”和“_”替换为“-”?
我有以下表单字段:title url content
我想在 url 字段上执行 gsub。
谢谢...
创建新帖子时,如何在控制器中将“”和“_”替换为“-”?
我有以下表单字段:title url content
我想在 url 字段上执行 gsub。
谢谢...
请记住,从 URL 中删除空格和“_”是不够的,因为还有一些其他字符会破坏您的 HTML 代码,甚至会导致脚本注入。<>'"/\
.
我建议传递所有字母和数字 - 其他所有内容都转换为-
.
class Post < ActiveRecord::Base
attr_protected :url
validates_presence_of :title
before_create :generate_url
private
def generate_url
self.url = title.strip.downcase.gsub(/[^a-z0-9]+/,'-')
end
end
控制器不变。
title.gsub(" ","-").gsub("_","-")
title.gsub(/[\s_]+/, '-').strip
如果你想打标题,那么你可能会发现诺曼的friendly_id 有一些用处:
http://github.com/norman/friendly_id
它会为您创建永久链接,因此您无需担心应用程序中 url 的重复或生成。它还将与 ActiveRecord 集成以覆盖查找方法。