web-dev-qa-db-fra.com

Comment obtenir un tableau avec les noms de colonne d'une table

J'ai besoin d'un tableau avec les noms de colonne d'une table

Des idées sur la façon dont je peux le faire avec Rails 3.0.0rc?

41
Arwed

Supposons que vous ayez un modèle Post:

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

Il renverra un tableau avec les noms des colonnes de la table 'posts'.

58
Andrea Pavoni

ActiveRecord :: Base # column_names

créer un modèle:

$ Rails g model Post title:string body:string

vérifier app/models/post.rb

class Post < ActiveRecord::Base
end

depuis votre terminal:

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

devrait produire:

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

crédit à @ dombesz 's commentaire in Andrea Pavoni 's answer

37
Patrick Klingemann

Pour ActiveRecord:

Model.column_names

Pour Mongoid:

Model.attribute_names

Sortie:

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

Remarque: Ce sera _id au lieu de id pour Mongoid

17
Sheharyar