不要な空白をクリーンアップする before_validation フックを追加しようとしています。その一環として、空白の文字列値を nil に戻したいと考えました。これは、ユーザーが必須フィールドをバイパスしようとして空のスペースを入力するのを防ぐためです。
以下は、私がこれをやろうとした方法です。変更点[x][1].strip! 行は期待どおりに機能し、空白行が返されます。私が驚いたのは、changes[x][1] = nil を設定しようとしても、changes[x][1] の値が変わらないことです。いくつかのデバッグ テストを実行すると、それが失敗しただけでなく、changes[x][1] を任意の値に設定しようとしても、実際には配列を更新できないことがわかりました。
ここで何が間違っているのか、どうすれば修正できるのかを知りたいです。本当にありがとう!
def strip_whitespace
changes.keys.each do |x|
if changes[x][1].respond_to?(:strip!)
changes[x][1] = nil if changes[x][1].blank?
changes[x][1].strip!
end
end
end