1. ホーム
  2. ruby-on-rails

[解決済み] Assignment Branch Condition Size too high」の意味と修正方法について教えてください。

2022-06-13 17:29:33

質問

私の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

これは何を意味し、どのように修正すればよいのでしょうか?

どのように解決するのですか?

Assignment Branch Condition (ABC) サイズは、メソッドのサイズを測定するものです。 これは基本的に A のアサインメントを数えることによって決定されます。 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