如何在覆盖控制器后显示activeadmin表单中的错误

我有一种情况需要覆盖activeadmin中的create。 我自动填充字段,如果数据已经存在,则应更新否则创建。 这是我的创建方法:

def create id = params[:company].dig(:id) if id.present? @company = Company.find(id) if @company.update(permitted_params[:company]) redirect_to resource_url flash[:notice] = 'Company created successfully' else #add errors to semantic errors end else new_permitted_params = permitted_params[:company].except(:id) @company = Company.new(new_permitted_params) @company.save if @company.errors.any? #add this to semantic errors so that activeadmin handles and displays the errors end end end 

我想显示违反validation的错误,以便用户知道他/她是否输入了无效条目。

我找到了这个,但它看起来像一个解决方案而不是一个解决方案。 请帮我解决这个问题。

提前致谢。

我在名为new.html.arb视图中创建了一个新的HTML文件,并在其中添加了insert_tag renderer_for(:new) 。 之后我所做的就是

 if @company.errors.any? render 'new' end 

我通过查看activeadmin的默认行为来发现它。 我希望这有助于其他想要做类似事情的人。 这是我得到的结果,也是我要求的结果。

包含验证错误的字段。

我想知道客户端逻辑是否根据id.present提交到不同的URL? 可能会让事情变得更加安宁。