Rails从模型方法返回验证错误消息

时间:2017-04-01 22:14:40

标签: ruby-on-rails

我在我的控制器中调用导入文件的导入方法。如果在导入中它尝试保存对象并且未通过模型验证,我如何将验证错误消息返回到project_data_path(或者返回到索引视图的其他方式)?

我在控制器中尝试了一个if语句,但它只是给了我一个验证失败错误

控制器

def import
  if Datum.import(params[:file],params[:project_id])
    redirect_to project_data_path, notice: "data imported."
  else
    redirect_to project_data_path #if import fails, need to send errors
  end
end

模型

def self.import(file, proj_id)
    ##.. working logic that imports file into datum..##

    ## below works fine if there are no validation errors
    datum.save! ##model validation error happens here

  end
end

1 个答案:

答案 0 :(得分:0)

save!会引发异常,而save只会返回truefalse。只需删除感叹号即可。