Assignment Branch Condition size for search is too high. [<10, 21, 5> 23.79/20]
J'ai eu cette erreur avant de commettre. Quand je l'ai recherché, il m'a semblé être une erreur qui semblait trop large.
Github de RuboCop https://github.com/rubocop-hq/rubocop/tree/v0.28.0
Ce RubCop semble inspecter le code et vous indique que le code est long, l'indentation est étrange, et ainsi de suite. Parfois, il corrige le problème (corrige l'indentation non naturelle), et parfois il vous avertit simplement et vous demande de faire quelque chose vous-même. Cependant, il semble que tous les points de RuboCop ne soient pas corrects.
Assignment Branch Condition size for search is too high. [<10, 21, 5> 23.79/20]
Comme je l'ai mentionné au début, cela semble avoir un sens naïf.
def search
if params[:city_id]
pagy, offices = pagy Office.where(city_id: params[:city_id])
pagy_headers_merge(pagy)
elsif params[:keyword]
keywords = params[:keyword].split(/[[:blank:]]+/).select(&:present?)
pagy, offices = pagy_array([])
pagy_headers_merge(pagy)
keywords.each do |keyword|
offices += Office.where('name LIKE (?) OR
address LIKE (?) OR
near_station LIKE (?) OR
introduction LIKE (?) OR
company LIKE (?)',
"%#{keyword}%",
"%#{keyword}%",
"%#{keyword}%",
"%#{keyword}%",
"%#{keyword}%")
end
else
pagy, offices = pagy(Office.all)
pagy_headers_merge(pagy)
end
render json: offices, each_serializer: OfficeIndexSerializer, include: '**'
end
Je l'ai écrit moi-même et j'ai pensé que c'était long. Verticalement long. Cependant, avec mes connaissances actuelles, je ne pouvais pas penser à comment rendre le code plus concis. S'il vous plaît, faites-moi savoir.
.rubocop.yml
a changé les paramètres de RuboCop.
En regardant la déclaration d'erreur, ...
Assignment Branch Condition size for search is too high. [<10, 21, 5> 23.79/20]
[<10, 21, 5> 23.79/20]Cette partie semble représenter le score. En regardant cela, il dit: «Vous avez un score MAX de 20, mais vous en avez 23..Il est 79. »Je pensais que je devais faire quelque chose à ce sujet.
J'ai donc changé les paramètres dans .rubocop.yml.
Comment l'avez-vous changé?
``` ruby
Metrics/AbcSize:
# The ABC size is a calculated magnitude, so this number can be a Fixnum or
# a Float.
Max: 15
J'ai changé le réglage de cette partie Max à 25. Et quand je m'engage, je n'ai reçu aucune suggestion de RubCop.
J'espère que vous pouvez le ressentir dans cet article dans la mesure où vous pouvez modifier les paramètres.