activeadmin便利ですよね。
ただ、ちょっとなにか特別なことをしようとすると困ることが多々あります
今回、モデルに以下のような独自バリデーションを入れたとき、エラー時にフォームでエラー表示がされず困ったのでメモ。
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
ActiveAdmin.register Article do
...
form do |f|
f.semantic_errors
f.inputs do
f.input :title
f.input :text
end
f.actions
end
end
以上です。