在我的 Rails 项目中,我创建了获取参数并保存模型的服务对象。我想在其中一个参数无效时处理异常。我的服务对象如下所示:
class ModelSaver
include ActiveModel::Validations
attr_reader :model
def initialize(params)
@params = params
end
def errors
@model.errors
end
def save_model
@model ||= Model.new(params)
@model.name = nil
@model.save!
rescue ActiveRecord::RecordNotSaved, ActiveRecord::RecordInvalid => error
@model.errors.add(:base, error.to_s)
false
end
private
attr_reader :params
end
在模型名称中不能为 nil,因此在示例中我尝试将@model.name = nil
服务对象转至救援并从 save_model 退出。我可以@model.save!
在异常之后以某种方式继续并添加下一个错误(如果有的话)@model.name = nil
吗?