Rails在字段StripAttributes Gem之前和之后剥离空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails在字段StripAttributes Gem之前和之后剥离空格相关的知识,希望对你有一定的参考价值。
我有一个Rails 3.2.14应用程序,我通过一个典型的表单收集数据值。有些时候,工作人员会进入名称为“Doe,John”的字段,其格式应为“Doe,John”。或者在其他情况下,他们可以向表格添加地址,例如“111 W. 8th St Houston,TX 77448”而不是“111 W. 8th St Houston,TX 77448”。
所以基本上他们做了很多切割和粘贴,有时包括前导和尾随空格。
我对strip
有点熟悉,但我不确定现在我只能剥离前导空格和尾随空格。
我想将此作为验证或回调before_save或before_create过滤器。
如果有人对如何剥离前导/尾随空格以及验证或方法看起来有什么建议我会很感激。
你可以很容易地使用它如下
class User < ActiveRecord::Base
normalize_attribute :first_name, :with => :strip
end
此外,还有其他一些选项,如布尔值,电话号码或移动设备
您可以将标准化程序用于多个属性
class User < ActiveRecord::Base
normalize_attribute :first_name, :last_name, :email, :with => :strip
end
这有非常干净的语法供使用。
编辑:
attribute_normalizer还提供了更多选项
- :squish =>和squish一样
- :phone =>删除非数字
您还可以在应用程序中定义custom规范化器
你可以使用strip
。正如文件所说:
strip → new_str
Returns a copy of str with leading and trailing whitespace removed.
" hello ".strip #=> "hello"
" goodbye
".strip #=> "goodbye"
所以,strip
应该帮助你。
但是,如果您想使用正则表达式来执行此操作。你可以使用:
^s*|s*$
所以,你的代码可能是:
str.gsub!(/^s*|s*$/, '')
StripAttributes Gem
这就是您正在寻找的无障碍,安全的前导和训练空白条带。
Basic Usage
- 将gem安装到
Gemfile
中:gem 'strip_attributes', '1.8.0' # Strips leading and trailing whitespaces in form input.
- 将其添加到您接受来自用户的表单(或API)输入的任何模型:
class YourModel < ActiveRecord::Base strip_attributes end
ProTip:如果您有其他模型继承的Base类,请将其放入其中。
默认情况下,这将从所有属性中删除所有前导和训练空白。您可以使用其他选项来限制应用的属性以及单词之间的多个空格是否折叠到单个空间中等。
但是,默认是非常好并且非常安全。我发现这比需要您指定要删除哪些属性的替代方法更好。通常,您要删除所有属性。
以上是关于Rails在字段StripAttributes Gem之前和之后剥离空格的主要内容,如果未能解决你的问题,请参考以下文章
rails g mongoid:配置不工作 Rails 6.1