这里主要是为以后做细粒度的权限的时候用,先记录下来
#encoding: utf-8
#rails rake 获取所有model类名
require 'find'
namespace :model do
desc 'this is auto generate models list'
task :generate_list => :environment do
Find.find(Rails.root.join("app/models").to_s) do |path|
if FileTest.directory?(path)
if File.basename(path)[0] == ?.
Find.prune
else
next
end
else
require path
end
end
ObjectSpace.each_object(Class) do |k|
if k.ancestors.include?(ActiveRecord::Base)
#去掉 ActiveRecord::Base 它自己
#去掉 虚拟类
#去掉 单表继承的父类
if k.name != "ActiveRecord::Base" and k.abstract_class != true
if k.column_names.include?('type') and k.subclasses.size > 0
next
end
puts k.name
end
end
end
end
end
2011.11.19 更新:
有个更好的方法,参见 https://github.com/vkill/i18n_attributes 这个gem
Last modified by vkill on2011/11/19 20:24
#encoding: utf-8
#rails rake 获取所有model类名
require 'find'
namespace :model do
desc 'this is auto generate models list'
task :generate_list => :environment do
Find.find(Rails.root.join("app/models").to_s) do |path|
if FileTest.directory?(path)
if File.basename(path)[0] == ?.
Find.prune
else
next
end
else
require path
end
end
ObjectSpace.each_object(Class) do |k|
if k.ancestors.include?(ActiveRecord::Base)
#去掉 ActiveRecord::Base 它自己
#去掉 虚拟类
#去掉 单表继承的父类
if k.name != "ActiveRecord::Base" and k.abstract_class != true
if k.column_names.include?('type') and k.subclasses.size > 0
next
end
puts k.name
end
end
end
end
end
2011.11.19 更新:
有个更好的方法,参见 https://github.com/vkill/i18n_attributes 这个gem
Last modified by vkill on2011/11/19 20:24
网友评论(0):


