Rails 4 api 默认限制参数不通过 cops
Rails 4 api default limit params do not pass cops
这似乎有点疯狂。有没有另一种方法可以编写这个函数让警察通过它,或者我应该让它免除?
代码
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
Cop 错误
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
^^^
你想用这个方法做的是:
- 如果
params[:limit]
超过最大限制,将其设置为最大限制
- 如果
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
Rubocop 结果:
$ 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
这似乎有点疯狂。有没有另一种方法可以编写这个函数让警察通过它,或者我应该让它免除?
代码
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
Cop 错误
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
^^^
你想用这个方法做的是:
- 如果
params[:limit]
超过最大限制,将其设置为最大限制 - 如果
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
Rubocop 结果:
$ 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