2010-09-28 84 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