2017-04-03 70 views
1
Rails 3.2 

我工作的一個應用程序,它有開頭和結尾去掉空格很重要,保存到數據庫之前。去除每一個輸入空格Rails中

我打算寫一個輔助方法,要做到:

if !self.attribute_name.nil? 
    self.attribute_name = self.attribute_name.strip 
end 

,把它的每一個屬性,在各種模型,作爲before_save行動。

你能想到更簡單的方法嗎?

+2

有很多是您處理該問題,我使用的寶石。一個是:https://github.com/rmm5t/strip_attributes 然後,您只需將其包含在每個模型文件中,而不是每個控制器的創建/更新操作。 – bkunzi01

+1

@ bkunzi01:如果你把它變成一個答案,我會給你信貸的。該寶石還具有額外的好處,允許我刪除字符串內多餘的空白,以及額外的行(作爲選項) – EastsideDeveloper

回答

1

有很多是您處理該問題,我使用的寶石。其一是:github.com/rmm5t/strip_attributes

然後你只需將其包含在每個模型文件,而不是每個控制器創建/更新行動

+0

我明白這不支持Rails> 3.2,但我的應用程序是Rails 3.2 – EastsideDeveloper

+0

它適用於4.2,但我沒有針對Rails 5.0進行測試。我已經使用Rails 5的下列內容(但選項較少):https://github.com/thomasfedb/attr_cleaner – bkunzi01

0

替換可以用gsub方法完成。這些是替代方法。 gsub全局應用替換。

您可以使用GSUB也

if !self.attribute_name.nil? 
    self.attribute_name = self.attribute_name.gsub(" ", "") 
end 
+0

請不要使用html/js/css代碼片斷的東西是不是一個可運行的HTML/JS/CSS。特別是ruby代碼。 –

+0

好的,我會記住這一點 –

+0

這也不能解決我的問題,因爲它不會刪除要求爲每個屬性調用此方法的要求。 – EastsideDeveloper