【问题标题】:How to remove whitespace from Model attributes?如何从模型属性中删除空格?
【发布时间】:2011-12-26 05:01:22
【问题描述】:
确保模型从字符串值中修剪前导和尾随空格的最简单方法是什么。
一个不方便的方法似乎是 before_save 过滤器——尽管对于像从字符串中删除空格这样常见的事情,也许有一些配置可以做到这一点?
【问题讨论】:
标签:
ruby-on-rails
ruby
trim
spaces
strip
【解决方案1】:
没有内置的全局/配置设置,因为您不想总是这样做,所以最好根据您描述的具体情况并在前过滤器中使用strip(field) .有一个可用的宝石,但正如 Jacob 所详述的那样。
我还建议在对用户值进行任何操作时要小心。一个常见的最佳实践是保存用户键入的“任何内容”,“所有内容”(好吧,在这种情况下为空格)。然后根据需要在内部进行操作并格式化显示。
这里的主要推理是,当用户重新编辑他们的信息时,最好给他们“他们之前输入的确切内容”,而不是陷入最终可能成为复杂验证和非常脆弱的用户界面的事情中。
另一个旁注,确保使用“数据适当”字段,例如不要将日期存储在字符串中,这是自找麻烦。
【解决方案3】:
我只需要一个在验证之前运行的过滤器,并通过所有参数来修剪它们。如果你把它放在你的基本控制器类上,你只需设置它并忘记它。