Как получить объект из представления CouchDB, используя CouchRest Ruby Gem - PullRequest
1 голос
/ 03 февраля 2011

Предполагая, что у меня есть представление в моей CouchDB с именем "user / all" и расширенный документ CouchRest следующим образом:

class User < CouchRest::ExtendedDocument

    property :username
    property :password
    property :realname
    property :role
    property :rights

end

Как мне получить документ для ключа 'admin' из этого представленияиспользовать этот ExtendedDocument?

(Если мне нужно внести изменения в подкласс ExtendedDocument, что следует изменить?)

Большое спасибо.

1 Ответ

1 голос
/ 04 февраля 2011

Попробуйте это:

class User < CouchRest::ExtendedDocument

  property :username
  property :password
  property :realname
  property :role
  property :rights

  view_by :role 

end

Здесь я предполагаю, что 'admin' является свойством роли. Это создаст представление в вашем проектном документе с указанием роли. Затем, чтобы получить все административные документы, вы просто делаете следующее:

@admins = User.by_role(:key => 'admin')

Если на самом деле фактическим идентификатором документа является «admin», то все, что вам нужно сделать, это:

@admin = User.get('admin') 

Или, альтернативно:

@admin = User.all(:key => 'admin')

Я бы также посоветовал взглянуть на CouchRest Model, которая по сути является расширением жалобы Active Model для CouchRest, если вы используете это с Rails. Удачи!

...