確保模型從字符串值修剪前導和尾隨空白的最簡單方法是什麼?如何從模型屬性中刪除空格?
一種不方便的方式似乎是before_save過濾器 - 儘管對於從字符串中刪除空白的常見操作,也許有一些配置可以實現這一點?
確保模型從字符串值修剪前導和尾隨空白的最簡單方法是什麼?如何從模型屬性中刪除空格?
一種不方便的方式似乎是before_save過濾器 - 儘管對於從字符串中刪除空白的常見操作,也許有一些配置可以實現這一點?
使用strip_attributes
寶石:
由於您不希望總是這樣做,所以沒有內置的全局/配置設置,因此最好根據您的描述在個案基礎上完成,並在strip(field)
之前的過濾器中完成。儘管雅各布詳細描述了一種可用的寶石。
我還建議在對用戶值進行任何操作時小心謹慎。常見的最佳做法是保存用戶輸入的「任何」,「疣和所有」(好的,在這種情況下,空格)。然後在內部操作並根據需要進行格式顯示。
這裏推理的主線是,當用戶重新編輯他們的信息時,最好給他們'他們之前輸入的內容',而不是陷入可能導致複雜的驗證和非常脆弱的用戶界面。
另一方面,請務必使用'適當的數據'字段,例如不要在字符串中存儲日期,這是在招惹麻煩。
我只是在驗證之前運行一個過濾器,並通過所有的參數來修剪它們。如果你把它放在你的基礎控制器類上,你只需設置它並忘記它。
事實上,這惹惱了我有點太 - 讓我在你的Gemfile寫這篇
https://github.com/omarqureshi/AR-stripper
遲早會發布此作爲寶石,但在此期間只
gem 'stripper', :git => "[email protected]:omarqureshi/AR-stripper.git"
會做
您還可以使用回調去掉空白而不使用寶石。
我不知道任何配置regrading,但在before_validation掛鉤的情況下,您可以檢查此:http://stackoverflow.com/questions/4294923/rails-3-strip-whitespace-before-validation-on-所有表格 – sparrovv
查看[此處的實現](http://railsforum.com/viewtopic.php?id=969)。 – Zabba