我有一種情況,我需要在activeadmin中重寫create。我自動填充字段,如果數據已經存在,它應該更新,否則創建。這裏是我創造的方法:如何在覆蓋控制器後在activeadmin表單中顯示錯誤
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
我想顯示其違反了驗證,使用戶知道,如果他/她已經進入無效輸入錯誤。我發現this但它看起來不僅僅是解決方案。請幫我解決這個問題。
在此先感謝。
讓我給你解釋一下爲什麼我這麼做。我已經在此表單上應用了自動完成功能,並使用我收到的數據設置了所有字段。這就是邏輯起作用的地方。如果設置了ID(如果我沒有在自動完成時選擇一個對象,則不會這樣),然後更新否則創建。 – UsamaMan