Hanami - 如何正确检查模型是否已保留?

Hanami - How to properly check if a model has been persisted?

我是 hanami 的新手,有 rails 背景,我想知道验证模型是否已在创建操作中持久化的最佳实践。

我创建了一个如下所示的 users/create 操作:

class Create
    include Web::Action

    def call(params)
          repository = UserRepository.new

          @user = repository.create(name: params[:user][:name], 
                                    email: params[:user][:email],
                                    type: 'standard')
          redirect_to '/users'
    end
  end

我想确保仅在成功创建用户后才重定向用户。我rails,我会这样做:

redirect_to '/users' if @user.persisted?

但这不是花见做事的方式。目前我正在这样做:

redirect_to '/users' if !@user.id.nil?

哪个有用,但看起来不干净。用花见做这件事的最好方法是什么?

尝试这样的事情。

def call(params)
  repository = UserRepository.new

  @user = repository.create(name: params[:user][:name], 
                            email: params[:user][:email],
                            type: 'standard')
  redirect_to '/users'
rescue Hanami::Model::Error
  # handle the error
end

ROM/Hanami 无法默默地放弃您传递给 repo 的更改,它会引发某种异常(Hanami::Model::Error 在 hanami-model 的情况下)或保留您的实体。也就是说,像 @user.id.nil? 这样的检查是完全多余的。