Ruby on rails rails:显示多个模型的错误

Ruby on rails rails:显示多个模型的错误,ruby-on-rails,Ruby On Rails,我遇到的情况是,用户可以同时创建多个记录,因此我的控制器操作如下所示: if Unit.create multiple_unit_params.values redirect_to units_path else render :new end def create @unit = Unit.new(multiple_unit_params.values) @unit.save! redirect_to(units_path) rescue Act

我遇到的情况是,用户可以同时创建多个记录,因此我的控制器操作如下所示:

  if Unit.create multiple_unit_params.values
    redirect_to units_path
  else
    render :new
  end
def create
  @unit = Unit.new(multiple_unit_params.values)

  @unit.save!

  redirect_to(units_path)

rescue ActiveRecord::RecordInvalid => e
  # ... Deal with exception
end

任何一条记录的验证都可能失败。那么,如果我不知道哪些记录验证失败,因为存在多个记录,那么我应该如何在视图中呈现错误呢?

克服这一问题的一种方法是使用
创建引发异常的方法。异常对象包含有关失败模型的信息

我倾向于使用的模式如下所示:

  if Unit.create multiple_unit_params.values
    redirect_to units_path
  else
    render :new
  end
def create
  @unit = Unit.new(multiple_unit_params.values)

  @unit.save!

  redirect_to(units_path)

rescue ActiveRecord::RecordInvalid => e
  # ... Deal with exception
end
如果您要创建多个记录,您可能希望将其封装在一个事务中,这样您就不会得到一些已创建的记录和一些未创建的记录。这将是一个全有或全无的事情。异常自动解除事务