-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 に答える