-2

在我的params哈希中,我收到一个:limit. 我需要将此值分配给一个变量limit,但不能超过50,如果:limit未给出值,则默认为50

首先,我这样做了:

limit = [params[:limit], 50].min

这将使它最大50,但不会起作用:如果没有给出任何东西:limit,那么这将使limit 0.

接下来,我这样做了:

limit = [params[:limit] || 50, 50].min

这行得通,但我想知道这是否有效,或者是否有更好的方法来做到这一点。

4

2 回答 2

2

尝试

limit = (params[:limit] && params[:limit] < 50) ? params[:limit] : 50
于 2012-12-31T12:57:45.783 回答
1

您的解决方案很容易阅读,但效率很低,因为您正在创建一个数组并min每次都调用该方法,这太过分了。

一种可能不太可读、更冗长但在机器上更容易的方法可能是:

if params[:limit] && params[:limit] < 50
  params[:limit] 
else
  50
end
于 2012-12-31T12:11:02.117 回答