web-dev-qa-db-ja.com

テーブルの列名を含む配列を取得する方法

テーブルの列名を含む配列が必要です

Rails 3.0.0rc?

41
Arwed

Postモデルがあるとします。

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

テーブル 'posts'の列名を含む配列を返します。

58
Andrea Pavoni

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 's comment in Andrea Pavoni の回答

37

ActiveRecordの場合:

Model.column_names

Mongoidの場合:

Model.attribute_names

出力:

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

注:Mongoidの場合、idではなく_idになります

17
Sheharyar