如何获取具有表的列名的数组

时间:2010-08-13 18:06:35

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord orm

我需要一个包含表名列

的数组

有关如何使用rails 3.0.0rc执行此操作的任何想法?

3 个答案:

答案 0 :(得分:54)

假设你有一个Post模型:

Post.column_names
# or
Post.columns.map { |column| column.name }

它将返回一个包含表'posts'的列名的数组。

答案 1 :(得分:37)

ActiveRecord::Base#column_names

创建模型:

$ rails g model Post title:string body:string

验证 app / models / post.rb

class Post < ActiveRecord::Base
end
来自您的终端

$ rake db:migrate
$ rails c
> Post.column_names

应该产生:

=> ["id", "title", "body", "created_at", "updated_at"] 

@dombesz的回复中commentAndrea Pavoni信用

答案 2 :(得分:16)

对于ActiveRecord:

Model.column_names

对于Mongoid:

Model.attribute_names

<强>输出:

=> ["id", "title", "body", "created_at", "updated_at"] 

注意:对于Mongoid,它将是_id而不是id