确保模型从字符串值中修剪前导和尾随空格的最简单方法是什么。
一个不方便的方法似乎是一个before_save过滤器 - 虽然对于从字符串中删除空格这样常见的东西,也许有一些配置可以做到这一点?
答案 0 :(得分:9)
由于您不希望始终执行此操作,因此没有内置的全局/配置设置,因此最好根据您的描述逐个完成,并使用strip(field)
在过滤之前。虽然雅各布详细说明,但有一颗宝石可供选择。
我还建议在对用户值进行任何操作时要小心。一个常见的最佳做法是保存用户输入的“无论什么”,“疣和所有”(在这种情况下,好吧,空格)。然后根据需要进行内部操作并格式化显示 这里的推理主线是,当用户重新编辑他们的信息时,最好给他们“他们之前输入的确切内容”,而不是陷入最终可能导致复杂的验证和非常脆弱的用户界面。
另一个旁注,请务必使用“数据适当”字段,例如不要将日期存储在字符串中,而是要求麻烦。
答案 1 :(得分:3)
使用strip_attributes
gem:
答案 2 :(得分:2)
我只有一个在验证之前运行的过滤器,并撕下所有参数来修剪它们。如果你把它放在你的基本控制器类上,你只需设置它就会忘记它。
答案 3 :(得分:2)
确实,这让我有点恼火 - 所以我写了这个
https://github.com/omarqureshi/AR-stripper
迟早会将此作为宝石发布,但与此同时只是
gem 'stripper', :git => "git@github.com:omarqureshi/AR-stripper.git"
你的Gemfile中的会做
答案 4 :(得分:0)
你也可以使用回调来剥离空格而不使用gem。