ruby on rails - ¿Qué se entiende por ''Tamaño de condición de rama de asignación demasiado alto'' y cómo solucionarlo?
ruby-on-rails code-metrics (1)
El tamaño de la Condición de rama de asignación (ABC) es una medida del tamaño de un método. Se determina esencialmente contando el número de asignaciones A , ranchos B y declaraciones condicionales C. (mas detalle..)
Para reducir el tamaño de ABC, puede mover algunas de esas asignaciones a llamadas before_action:
before_action :fetch_current_category, only: [:show,:edit,:update]
before_action :fetch_categories, only: [:show,:edit,:update]
before_action :fetch_search_results, only: [:show,:edit,:update] #or whatever
def show
rate
end
private
def fetch_current_category
@category = Category.friendly.find(params[:id])
end
def fetch_categories
@categories = Category.all
end
def fetch_search_results
@search = category.products.approved.order(updated_at: :desc).ransack(params[:q])
@products = @search.result.page(params[:page]).per(50)
end
En mi aplicación Rails, uso
Rubocop
para buscar problemas.
Hoy me dio un error como este: El
Assignment Branch Condition size for show is too high
.
Aquí está mi código:
def show
@category = Category.friendly.find(params[:id])
@categories = Category.all
@search = @category.products.approved.order(updated_at: :desc).ransack(params[:q])
@products = @search.result.page(params[:page]).per(50)
rate
end
¿Qué significa esto y cómo puedo solucionarlo?