Что подразумевается под "слишком большим размером условия ветви назначения" и как его исправить?
В моем приложении Rails, я использую Rubocop
чтобы проверить на наличие проблем. Сегодня он дал мне такую ошибку:Assignment Branch Condition size for show is too high
. Вот мой код :
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
что это значит и как я могу это исправить?
1 ответ:
размер условия ветвления назначения (ABC) - это измерение размера метода. Это по существу определяется подсчетом числа Assignments, Bранчо, и Cусловные утверждения. (более подробно..)
чтобы уменьшить размер ABC, вы можете переместить некоторые из этих назначений в вызовы 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