Closed kyoshida-aim closed 5 years ago
自動テストの中身に今回の実装内容が含まれていない気がする(ローカル環境でRSpecを実行するとテストは9個流れてたような...)
後ほど確認します
プッシュ後のテストを正しく見ていなかっただけでした。問題なしです 👍
特定のバリデーション(今回ならnameのlimit)について検証してる方がいいのでは? https://railsguides.jp/active_record_validations.html#%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%A6%82%E8%A6%81-errors-details 明日出社したら↑試す
error_codes = []
task.errors.details[:name].each do |detail|
error_codes << detail[:error]
end
expect(error_codes).to include(:too_long)
↑エラーコードを取得しようとすると結構回りくどくなりそうです。 現状でも文字列の長さがバリデーションの可否を分けていることは読み取れる形にできていると思うので、 複数のエラーが同時に発生しかねない仕様になった場合に変更する、という形で十分だと思います。 今回は変更ナシで
概要
rails generate
コマンドで作成しましょう7 で実装した
locale
でバリデーションエラーもカバーしていたため省略。今後の実装で必要になった際は
locale
に追加する理由
確認方法
bin/rails db
やbin/rails c
などのコンソール側からタスク作成を試みて動作確認a. db内での操作でエラーが発生した場合に日本語表示されてない (postgresql側の仕様だろうし特に対応する必要もない?)
c.
やっていないこと
相談事項
tasks
モデルの実装時 (#4) シンプルな構成にするために名前と説明文のみのテーブルにしているので、今回実装するバリデーションも現在実装されている各カラムに対してのみ行う予定です。 今後、tasks
に別のカラムを追加する際、あるいは他のテーブルを追加する際にはバリデーションごと実装しようと思います。