“作业分支条件大小过高”是什么意思? 如何解决这个问题?

在我的 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

这是什么意思,我该怎么补救?

100648 次浏览

作业分支条件(ABC)的大小是一个方法的大小的度量。它基本上是通过计算 Assignment、 Branches 和 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