Getting model column names

Hello,

I am writing a RoR application that connects to a couchDB database using
couchrest_model.

The definition of my model is the following one:

class BdsDataAuthor < CouchRest::Model::Base
  property :id, Integer
  property :first_name, String
  property :last_name, String
end

I would like to be able to get the list of the model columns, e.g., the
result of
BdsDataAuthor.columns would be [id, first_name, last_name]

Is it possible? I saw that active_record provides this kind of method
(column_names), but since I am not using active_record...

A solution that I tried is to create a method in the model class (it
works but its not the "best" solution...):

def getColumns
   columns = Array.new
   columns << "id"
   columns << "first_name"
   columns << "last_name"
end

Any idea/suggestion to solve this problem?

Thank you

**columns**(table_name, name = nil) public
Returns an array of Column objects for the table specified by table_name. See the concrete implementation for details on the expected parameter values.

Try this.

Ah sorry, I didn’t see that you aren’t using Active Record…

I haven’t used CouchRest, but a quick skim of this:

https://github.com/couchrest/couchrest_model/blob/master/lib/couchrest/model/properties.rb

seems to indicate that what you’re looking for could be accomplished with:

BdsDataAuthor.properties_by_name.keys

–Matt Jones

Thanks for your answer.

I will try the properties_with_values method to see if it returns what I
want.

Best regards

Matt Jones wrote in post #1061503:

  property :first_name, String

Any idea/suggestion to solve this problem?

I haven't used CouchRest, but a quick skim of this:

https://github.com/couchrest/couchrest_model/blob/master/lib/couchrest/model/properties.rb