2016-06-16 8 views
0

TBH, das scheint ein bisschen verrückt hier. Gibt es eine andere Möglichkeit, diese Funktion zu schreiben, um die Polizei dazu zu bringen, sie weiterzugeben, oder sollte ich sie einfach ausnehmen?rails 4 api Standardlimit Params nicht vorbei Cops

-Code

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 Fehler

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 
    ^^^ 

Antwort

1

Was möchten Sie mit dieser Methode zu tun ist:

  1. wenn params[:limit] max Grenze überschreitet, setzen Sie ihn auf Höchstgrenze
  2. wenn params[:limit] weniger oder gleich 0 ist, setzen Sie ihn Grenze

-Code auf dem Standard:

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 Ergebnis:

$ 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 
+0

danke. Aus dem Aussehen deines Codes und dem was ich ausprobiert habe war "api_settings = AppSettings.api" der Täter. –

+1

Ja, das ist ein API-Anruf, ein wichtiger Faktor der "ABC" -Größe. –