当用户提交一个ActiveAdmin表单而表单内容非法时,表单仍然被提交,并且没有错误消息被显示。为了解决这个问题,可以通过在ActiveAdmin资源文件中添加以下代码来自定义表单验证行为:
controller do
def create
super do |format|
break if resource.errors.present?
redirect_to admin_posts_url and return if resource.valid?
end
end
def update
super do |format|
break if resource.errors.present?
redirect_to admin_posts_url and return if resource.valid?
end
end
end
在这些操作中,如果资源不可用,则方法将终止。如果资源无效,则重定向到资源的索引路径。如果资源被视为有效,则重定向到资源的显示路径。这将确保当表单内容非法时,用户将看到相应的错误消息,并且表单不会提交。