起きた事象
controllerにおいて例外処理をしているとき
raise ActiveRecord::RecordInvalid
flash.now[:alert] = @takumi.errors.full_messages
render :new
=> 例外処理をしているのに、すべてのエラーが取れてしまうため例外が特定できない
解決策
full_messages_for(:symbol)を使うといい感じに取り出せるヨ
@messages=
{:first_name=>["を入力してください"]}
[1] pry(main)> takumi.errors.full_messages
=> ["first_nameを入力してください",
"性別を入力してください"
]
[2] pry(main)> takumi.errors.full_messages_for(:first_name)
=> ["first_nameを入力してください"]
結果
raise ActiveRecord::RecordInvalid
flash.now[:alert] = @takumi.errors.full_message_for(:first_name)
render :new
参考
API dock