Railsでバリデーション前に文字列の前後のスペースやタブを取り除くメモ
ベースにこれを使う。
https://github.com/holli/auto_strip_attributes
gem "auto_strip_attributes", "~> 2.0"
で、これだけだと全角スペースには対応してないけど、さいわい好きな処理を挟めるフィルター機能があるのでそれを使う。っていうか、これ使うともう別にstripじゃなくてもなんでもよくなるっていうか。
config/initializers/auto_strip_attributes.rb
AutoStripAttributes::Config.setup do set_filter strip_zenkaku: false do |value| value.gsub(/(^(\s| )+)|((\s| )+$)/, '') unless value.nil? or !value.kind_of?(String) end end
model
~snip~ auto_strip_attributes :title, :description, strip_zenkaku: true ~snip~
spec
~snip~ context 'strip' do before { @article.title = "\t " + ("あ" * MyModel::MAX_LENGTH_TITLE) + "\t "} it { should be_valid } end ~snip~
- 作者: 角川マガジンズ
- 出版社/メーカー: 角川マガジンズ
- 発売日: 2013/10/18
- メディア: 単行本
- この商品を含むブログ (20件) を見る