如果params[:value]为零,则必须有更好的方法分配默认值现在我要做的是:

if !params[:equity].nil?
   equity = params[:equity]
else
   equity = 0.00
end

难道没有办法做这样的事吗:
equity = params[:equity].nil? ? 0.00 : params[:equity]

我尝试过像replaceselectmerge这样的散列方法,但它们并不能真正按照我的需要工作。

最佳答案

您可以使用短路或运算符,如下所示:

value = param || 0.00 # where param is something like params[key]

如果要忽略空值(如空字符串),可以添加presence方法,如下所示:
value = param.presence || 0.00

如果参数值可以是数字(float/integer)、nil或空字符串,则可以缩短命令,如下所示:
value = param.to_f # will return 0.0 when param is nil or empty string

08-26 08:12