データベースに同じ形式で格納できるように、UPC 文字列コードを正規化するのに少し問題があります。
私はean
宝石を使用して文字列が適切かどうかを確認しています (これは正常に機能しています) が、検証後に次のような割り当てコードをスローすると:
validate :upc_check
def upc_check
if !upc.nil?
if !upc.ean?
errors.add(:upc, 'is not a valid UPC.')
else
upc = upc.strip
end
end
end
strip 呼び出しは文字列であるため、単なる例です。私は実際にupcのダッシュを削除します。
上記のコードは、実際には保存されないため、うまく機能しません。私は次のようなメソッドをトリガーすることを見ました
after_validation :normalize_upc
def normalize_upc
upc = upc.strip
end
..しかし、上記も機能しません。
検証後にデータを検証して変換するために、皆さんは何をしていますか?