在Ruby on Rails中查找未使用的视图/部分

时间:2009-02-11 10:51:44

标签: ruby-on-rails ruby

我目前正在开发一个大型的Ruby on Rails项目。它足够大,足够大,以至于不清楚是否所有观点都在使用中。

是否有任何脚本/插件可以生成未使用的视图文件列表?

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

我写了一个脚本来查找未使用的部分/视图。但我假设“未使用”意味着存在一个视图文件,其中没有定义任何控制器方法(更多)。该脚本不检查视图是否被调用,因为默认路由没有链接。这可能要复杂得多。

将以下脚本放在应用程序的脚本文件夹中:

#!/usr/bin/env ruby
require 'config/environment'
(Dir['app/controllers/*.rb'] - ['app/controllers/application.rb']).each do |c|
  require c
  base = File.basename(c, '.rb')
  views = Hash.new
  Dir["app/views/#{base.split('_')[0]}/*"].each do |v|
    views.store(File.basename(v).split('.')[0], v)
  end
  unused_views = views.keys - Object.const_get(base.camelcase).public_instance_methods - ApplicationController.public_instance_methods
  puts "Unused views for #{base.camelcase}:" if unused_views.size > 0
  unused_views.each { |v| puts views[v] }
end

它有点像黑客和未完成,但它确实起作用 - 至少对我而言。

像这样执行它(你只需要第一次使用chmod更改执行位):

chmod +x script/script_name
./script/script_name

享受!

答案 2 :(得分:4)

只需安装并运行 discover-unused-partials gem:

gem install discover-unused-partials

discover-unused-partials rails_root_directory

答案 3 :(得分:3)

遍历你的部分,grep(或awk)项目中的文件名。调整搜索正则表达式以在通用部分的行的开头查找“render:partial”(例如,“_ form”)。