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

时间:2017-02-10 19:12:36

标签: ruby-on-rails ruby ruby-on-rails-4

我的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的方式来做同样的事情?也许"到位"方法。类似于数组的东西与爆炸方法有关。不幸的是,字符串不存在to_i!,这正是我所需要的。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

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