我是来自铁路背景的hanami的新手,我想知道验证模型是否已在创建操作中保留的最佳做法。
我创建了一个如下所示的用户/创建操作:
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
我想确保在成功创建用户时仅重定向用户。我有轨,我会做这样的事情:
redirect_to '/users' if @user.persisted?
但这不是hanami的做事方式。目前我正在这样做:
redirect_to '/users' if !@user.id.nil?
这项工作起作用,但它看起来并不干净。用hanami做最好的方法怎么样?
答案 0 :(得分:4)
尝试这样的事情。
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
答案 1 :(得分:2)
Hanami::Model::Error
)或者保留您的实体。也就是说,像@user.id.nil?
这样的检查完全是多余的。