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?
这样的检查是完全多余的。
我是 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?
这样的检查是完全多余的。