活动记录模型中的列信息

时间:2010-09-15 20:34:24

标签: ruby-on-rails ruby activerecord documentation

是否有gem或插件,可以在Active Record模型中生成类名称上方的列名称的注释?我很确定我见过这样的东西,但在任何地方找不到它: 例如:

# columns Defs
# name:string
# user_id:integer
# etc.
class Post < ActiveRecord::Base

end

我还可以写这样的东西,但我不想重新发明轮子。

由于

3 个答案:

答案 0 :(得分:1)

从app文件夹中获取所有模型。

models = []
Dir.foreach("#{RAILS_ROOT}/app/models") do |model_path|
  if FileTest.directory?(model_path)
    next
  else
    filename = File.basename(model_path, '.rb')
    models << filename.camelize.constantize \
      if ["ActiveRecord::Base"].include?(filename.camelize.constantize.superclass.to_s)\
      && filename.camelize.constantize.table_exists?
  end
end

这将显示所有具有数据类型的列。

for model in models
  puts model
  model.columns_hash.select {|column_name,column_type| puts column_name + ":" + column_type }
end

可能这对你有帮助吗?

答案 1 :(得分:1)

您可能正在考虑使用annotate_models插件。

答案 2 :(得分:0)

annotate_models宝石。 This是我曾经使用的版本,但无法判断是否仍然保留。