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
これで検証すると返却値は
=> ["名称を入力してください"]
と適切なエラー文で返ってくる