QA@IT
«回答へ戻る

回答を投稿

valildation 失敗時に raise される ActiveRecord::RecordInvalid 例外は、record メソッドで検証に失敗したオブジェクトを取得できます。

rescue ActiveRecord::RecordInvalid => ex
  ex.record.errors.messages #=> {:tag_id=>["タグを10個以上登録できません"]}

ちょっとトリッキーなので、下記のように明示的に QuestionTag インスタンスを作るほうがわかりやすいかもしれません。

question_tag = QuestionTag.new(question: question, tag: tag)
question_tag.save #=> false
question_tag.errors.messages #=> {:tag_id=>["タグを10個以上登録できません"]}
valildation 失敗時に raise される `ActiveRecord::RecordInvalid` 例外は、`record` メソッドで検証に失敗したオブジェクトを取得できます。

```ruby
rescue ActiveRecord::RecordInvalid => ex
  ex.record.errors.messages #=> {:tag_id=>["タグを10個以上登録できません"]}
```

ちょっとトリッキーなので、下記のように明示的に QuestionTag インスタンスを作るほうがわかりやすいかもしれません。

```ruby
question_tag = QuestionTag.new(question: question, tag: tag)
question_tag.save #=> false
question_tag.errors.messages #=> {:tag_id=>["タグを10個以上登録できません"]}
```