2

创建新帖子时,如何在控制器中将“”和“_”替换为“-”?

我有以下表单字段:title url content

我想在 url 字段上执行 gsub。

谢谢...

4

4 回答 4

1

请记住,从 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

控制器不变。

于 2010-09-28T12:02:03.413 回答
0

title.gsub(" ","-").gsub("_","-")

于 2010-09-28T10:15:47.227 回答
0

title.gsub(/[\s_]+/, '-').strip

于 2010-09-28T10:28:51.063 回答
0

如果你想打标题,那么你可能会发现诺曼的friendly_id 有一些用处:

http://github.com/norman/friendly_id

它会为您创建永久链接,因此您无需担心应用程序中 url 的重复或生成。它还将与 ActiveRecord 集成以覆盖查找方法。

于 2010-09-28T10:44:11.573 回答