【问题标题】:Rails Best Practices false positive unused methodsRails 最佳实践误报未使用的方法
【发布时间】:2012-12-29 13:45:28
【问题描述】:

我正在使用 Rails 最佳实践来验证我自己的代码。

./app/controllers/news_items_controller.rb:2 - remove unused methods (NewsItemsController#new)
./app/controllers/news_items_controller.rb:2 - remove unused methods (NewsItemsController#create)
./app/controllers/news_items_controller.rb:2 - remove unused methods (NewsItemsController#edit)
./app/controllers/news_items_controller.rb:2 - remove unused methods (NewsItemsController#update)
./app/controllers/news_items_controller.rb:2 - remove unused methods (NewsItemsController#destroy)
./app/controllers/pages_controller.rb:1 - remove unused methods (PagesController#new)
./app/controllers/pages_controller.rb:1 - remove unused methods (PagesController#create)
./app/controllers/pages_controller.rb:1 - remove unused methods (PagesController#edit)
./app/controllers/pages_controller.rb:1 - remove unused methods (PagesController#update)
./app/controllers/pages_controller.rb:1 - remove unused methods (PagesController#destroy)
./app/controllers/registrations_controller.rb:2 - remove unused methods (RegistrationsController#update)
./app/controllers/registrations_controller.rb:8 - remove unused methods (RegistrationsController#after_sign_up_path_for)
./app/controllers/registrations_controller.rb:1 - remove unused methods (RegistrationsController#new)
./app/controllers/registrations_controller.rb:1 - remove unused methods (RegistrationsController#create)
./app/controllers/registrations_controller.rb:1 - remove unused methods (RegistrationsController#edit)
./app/controllers/registrations_controller.rb:1 - remove unused methods (RegistrationsController#destroy)
./app/controllers/static_controller.rb:2 - remove unused methods (StaticController#new)
./app/controllers/static_controller.rb:2 - remove unused methods (StaticController#create)
./app/controllers/static_controller.rb:2 - remove unused methods (StaticController#edit)
./app/controllers/static_controller.rb:2 - remove unused methods (StaticController#update)
./app/controllers/static_controller.rb:2 - remove unused methods (StaticController#destroy)

这里的动作大多是未使用的方法。唯一的问题是这些操作甚至没有定义......我尝试使用remove_method,但没有成功。

例如,news_items_controller 只有indexshow,而路由只定义indexshow

我的班级定义如下:NewsItemsController << StaticController << ApplicationController << ActionController::Base

我的猜测是 ActionController::Base 正在定义它们,有趣的是它没有显示“ApplicationController”...

这是StaticController的内容

# encoding: utf-8                                                                                                                                                                                     
class StaticController < ApplicationController
end

没有路由指向StaticController

和 routes.rb

  ActiveAdmin.routes(self)

  scope "(:locale)", :locale => /ru|en/ do
    devise_for :users, :controllers => { :registrations => "registrations" }

    resources :news_items, only: [:show, :index]
    resources :pages, :only => [:show]

    root to: "home#index"
  end

  root to: "home#index"

【问题讨论】:

  • 你的routes.rb中有resources :itemsresources :news_items这样的路由吗?
  • 我为什么要删除它,rails-best-practices 是程序的名称。我不是在要求最佳实践......只是碰巧该程序是这样调用的
  • 如果删除resources 路由会发生什么情况,消息会消失吗?

标签: ruby-on-rails ruby false-positive rbp


【解决方案1】:

Rails 最佳实践经常沉迷于显示误报。 在这种情况下,我不会太相信 RBP,而是在 rails_best_practices.yml 文件中完全排除这些操作。

例如:

RemoveUnusedMethodsInControllersCheck: { except_methods: ['YourController#search'] }

【讨论】:

    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多