いつもお世話になります。
text_formに入力された情報をモデルに書き込む際に以下のようにカスタムでバリデーションを使用しています。
モデルのwarning_xというカラム名のデータ型はFloatにしているのですが、下記のコードのようにparams[:warning_x]に全角文字が入った場合にモデル側で受け取ったものが「0.0」になってしまいます。
この値を受け取った時の値そのままとするにはどうすればよいのでしょうか。validates :points, numericality: trueなど既存のものを使用しない方法を考えています。
よろしくお願いいたします。
# モデル側 # warning_xはカラム名でデータ型はFloat class User < ApplicationRecord validate :user_error def user_error p warning_x # ↑の時点で0.0になってしまう ・ ・ カスタムバリデーション処理 ・ ・ end end # コントローラー側 # params[:warning_x]はフォームから送られてきた情報 @user.update(warning_x: "#{params[:warning_x]}")
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。