Ruby/Rails 中条件变量操作的快捷方式



我的 API 控制器接收的一个参数有一个大键名称,我需要将其从字符串转换为整数(如果存在(,然后再将其发送到要持久化的模型。通常我会执行以下操作之一:

params[:really_big_key_name] = params[:really_big_key_name].to_i unless params[:really_big_key_name].blank?

params[:really_big_key_name] = params[:really_big_key_name].present? ? params[:really_big_key_name].to_i : nil

如您所见,代码行变得很大,超过 80 个字符,我想坚持使用 Ruby 最佳实践。有没有更短、更 Ruby 的方式来做同样的事情?也许是"就地"的方法。类似于数组与 bang 方法类似的东西。不幸的是,字符串不存在to_i!,这正是我所需要的。

你可以

这样做:

params[:really_big_key_name] = params[:really_big_key_name].try(:to_i)

最新更新