Hiroto-Ishida  2020/11/28更新

Ruby on Railsの勉強〜モデルの検証・ソースコード追加〜



・実際にコーディング

必須のデータが入っているか?

app/models/task.rb

class Task < ApplicationRecord

   validates :name, presence: true

end


$bin/rails c で挙動を確認

irb(main):001:0> task = Task.new => #<Task id: nil, name: nil, description: nil, created_at: nil, updated_at: nil> irb(main):002:0> task.save => false

falseが返ってきているので検証成功。

エラーを検証すると

irb(main):003:0> task.errors

task.errors => #<ActiveModel::Errors:0x00007fc9abfaa358 @base=#<Task id: nil, name: nil, description: nil, created_at: nil, updated_at: nil>, @messages={:name=>["を入力してください"]}, @details={:name=>[{:error=>:blank}]}>

と出るがこれではまだ何が起こっているかわからないので

irb(main):004:0> task.errors.full_messages

これで検証すると返却値は

=> ["名称を入力してください"]

と適切なエラー文で返ってくる

タイトルとURLをコピーしました