Rails验证失败 - 希望留在表单上

时间:2015-08-14 06:02:10

标签: ruby-on-rails forms validation

我有一个表单,我试图验证date_to不小于date_from。验证似乎得到了认可,因为当我提交一个date_to小于date_from的表单时,我收到以下错误:

验证失败:开始日期必须在结束日期之前

但是我不希望验证打破页面。

目标:

如果验证失败,请停留在表单页面上,并在顶部显示描述错误的消息。

型号:

validate :validate_date_from_before_date_to, :on => [:create, :edit, :update]

def validate_date_from_before_date_to
  if self.date_from && self.date_to
  errors.add(:end_date, "Start date must be before end date") if self.date_to < self.date_from
end

控制器:

if @project.save! == false
  redirect_to edit_admin_project(@project)
else
  redirect_to admin_project_path(id: params[:id])
end

我已经检查了类似的问题,甚至是一个相同的问题,遗憾的是没有运气。

非常感谢任何和所有帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

在控制器中

if @project.save
  redirect_to edit_admin_project(@project)
else
  redirect_to admin_project_path(id: params[:id])
end

在您的表单上,您可以显示错误消息