Как получить массив с именами столбцов таблицы - PullRequest
39 голосов
/ 13 августа 2010

Мне нужен массив с именами столбцов таблицы

Есть идеи, как мне это сделать с помощью rails 3.0.0rc?

Ответы [ 3 ]

55 голосов
/ 14 августа 2010

Предположим, у вас есть модель сообщения:

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

Будет возвращен массив с именами столбцов таблицы 'posts'.

37 голосов
/ 21 февраля 2012

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 комментарий in Andrea Pavoni ответ

16 голосов
/ 17 июля 2014

Для ActiveRecord:

Model.column_names

Для Mongoid:

Model.attribute_names

Выход:

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

Примечание: для Mongoid будет _id вместо id

...