web-dev-qa-db-ja.com

「割り当てブランチ条件サイズが高すぎます」とはどういう意味ですか?それを修正する方法は?

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

これはどういう意味ですか、どうすれば修正できますか?

85
THpubs

割り当て分岐条件(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
91
chad_