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

这是什么意思,我该如何解决?

最佳答案

分配分支条件 (ABC) 大小是对方法大小的度量。它本质上是通过计算 A ssignments、 B 和 091214142 语句的数量来确定的(more detail..)

为了降低 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

关于ruby-on-rails - 'Assignment Branch Condition Size too high' 是什么意思以及如何修复它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30932732/

10-12 19:09