0

これはここで少しクレイジーに思えます。この関数を書いて警官に渡すようにする別の方法はありますか、それとも単に免除する必要がありますか?

コード

  def set_default_limit
    params[:limit]  = params[:limit].to_i > 0 ? params[:limit] : AppSettings.api[:default_limit]
    params[:limit]  = AppSettings.api[:max_limit] if params[:limit].to_i > AppSettings.api[:max_limit]
  end

コップエラー

app/controllers/application_controller.rb:66:3: C: Assignment Branch Condition size for set_default_limit is too high. [18.22/15]
  def set_default_limit
  ^^^
4

1 に答える 1

1

このメソッドでやりたいことは次のとおりです。

  1. 最大制限を超える場合params[:limit]は、最大制限に設定します
  2. params[:limit]が 0 以下の場合は、デフォルトの制限に設定します

コード:

def set_default_limit
  api_settings = AppSettings.api

  if params[:limit].to_i > api_settings[:max_limit]
    params[:limit] = api_settings[:max_limit]
  elsif params[:limit].to_i <= 0
    params[:limit] = api_settings[:default_limit]
  end
end

ルボコップの結果:

$ cat test.rb
def set_default_limit
  api_settings = AppSettings.api

  if params[:limit].to_i > api_settings[:max_limit]
    params[:limit] = api_settings[:max_limit]
  elsif params[:limit].to_i <= 0
    params[:limit] = api_settings[:default_limit]
  end
end

$ rubocop test.rb
Inspecting 1 file
.

1 file inspected, no offenses detected
于 2016-06-17T05:35:17.277 に答える