Active Record の検証は、失敗するとエラーをスローします。私がモデルに持っているのは
validate_format_of :field_which_cannot_have_spaces, :with => /^[^\s]+$/, :message => "Some error message"
代わりに、アンダースコア (snake_case) をスペースに置き換える文字列置換が必要です。
私にとってバリデーションを使用する利点は、フィールドが変更されるたびに実行されることsave(validate: false)
と、作成および更新コントローラー メソッドで置換を繰り返す必要がないことです。
ユーザーがフォームをハッキングした場合、フロントエンドの JavaScript ソリューションは役に立ちません... Rails ソリューションが必要です!