Edited at

activeadminのフォームでbaseエラーを表示する

More than 1 year has passed since last update.

activeadmin便利ですよね。

ただ、ちょっとなにか特別なことをしようとすると困ることが多々あります :sweat_smile:

今回、モデルに以下のような独自バリデーションを入れたとき、エラー時にフォームでエラー表示がされず困ったのでメモ。


app/models/article.rb

class Article < ApplicationRecord

validate :custom_validate

def custom_validate
if condition
errors.add(:base, 'XXXなのでダメです。')
end
end
end



app/admin/article.rb

ActiveAdmin.register Article do

...

form do |f|
f.inputs do
f.input :title
f.input :text
end
f.actions
end
# => このままだと:baseエラーが表示されない...
end



結論

semantic_errorsを使えばOK :ok_hand:

ActiveAdmin.register Article do

...

form do |f|
f.semantic_errors
f.inputs do
f.input :title
f.input :text
end
f.actions
end
end

以上です。


参考