在我的params
散列中,我收到的值为:limit
。我需要将此值分配给变量limit
,但不会超过50
,如果未给出:limit
的值,则缺省为50
。使用默认值获取最小值
首先,我这样做:
limit = [params[:limit], 50].min
这将使它最大的50
,但将无法正常工作:如果不给予:limit
,那么这将让limit
0
。
接下来,我这样做:
limit = [params[:limit] || 50, 50].min
这工作,但我还是想知道,这是有效的,如果有更好的方法来做到这一点。
当用户没有通过对'什么:limit',为什么它变成了'0'? – sawa
'params [:limit]'将默认为'nil'而不是'0'。但是,在'nil'上执行'to_i'将返回'0' –