2010-09-28 64 views
2

如何在创建新帖子时在控制器中用“ - ”替换“”和“_”?rails gsub question

我有以下表单字段: 标题 网址 内容

我想url域执行GSUB。

谢谢...

回答

0

如果你想一决高下标题,那么你会发现一些使用的诺曼friendly_id:

http://github.com/norman/friendly_id

这需要你创建永久链接的照顾,所以你不需要担心duplica或在您的应用程序中生成网址。它还将与ActiveRecord集成以覆盖查找方法。

+0

马特感谢我的工作,这正是我一直在寻找的! – andkjaer 2010-09-28 12:05:31

0

title.gsub(””, “ - ”)。GSUB( “_”, “ - ”)

0

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

+0

如何在我的控制器操作中设置它? – andkjaer 2010-09-28 10:44:05

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 

控制器没有改变。

+0

感谢您的信息! – andkjaer 2010-09-28 12:05:00