2011-05-24 58 views
2

我在我的Rails 3應用程序中有一個名爲Post的模型。rails 3 - 如果表單域爲空而不是這個值

用戶可以爲這些帖子創建自己的網址。 (我稱之爲clean_url。)

如果用戶沒有完成此字段,我想在保存表單時從標題創建自己的值。 (基本上使用@ post.title.to_s(某些註冊前ex刪除空格等...)

如果將該項保留爲空白,並且該項保留空白,最佳方法是什麼?

我的帖子控制器假定創建操作我可以在保存後的「update_attributes方法」 ......但是我開始想,或許這是錯的?

人對如何實現這一想法?

回答

2

在您的模型中使用before_save回調和私有方法。以下內容直接來自我的博客源代碼。

before_save :create_clean_url 

private 

def create_clean_url 
    if self.clean_url.blank? 
    # Remove non-alpha characters. Replace spaces with hyphens. 
    self.clean_url = self.title.downcase.gsub(/[^(a-z0-9)^\s]/, '').gsub(/\s/, '-') 
    end 
end 
+0

正是我在找的東西。真棒。謝謝。 – fighella 2011-05-24 12:57:36

相關問題