Добавление пользовательских видов с использованием couch_potato и simply_stored? - PullRequest
2 голосов
/ 20 апреля 2010

Я создаю приложение rails выше couchdb и решил попробовать гемы couch_potato и simply_stored, поскольку они, кажется, добавляют хороший набор функций над остальными api и помещают разработку couchdb «на рельсы».

Из того, что я вижу, SimlyStored / Couch работает над слоем couch_potato, поэтому, насколько я понимаю, основные функции couch_potato должны быть доступны из класса, который включает SimplyStored :: Коуч.

Однако мне не удалось использовать ключевое слово view для создания пользовательских представлений в модели, включающей SimplyStored.

Например, следующий код:

Class MyExample
  include SimplyStored::Couch
  property :name
end

Сгенерирует документ разработки с именем _design / myexample , который будет содержать представление с именем all_documents , которое будет использоваться для методов find (..) . Это действительно очень мило.

Однако, изменив код на

Class MyExample
  include SimplyStored::Couch
  property :name
  view :example, :map => "function(doc) { emit(doc.name, null)}", :include_docs => true, :type => :custom
end

Не добавлю вид с именем example, как я ожидал, однако я наверняка упускаю точку где-то.

Поэтому, если у кого-то есть предложения по определению дополнительных пользовательских представлений с использованием этих структур, я был бы очень признателен.

Спасибо,

1 Ответ

4 голосов
/ 21 апреля 2010

ОК, я действительно что-то упустил, поскольку объявления представления недостаточно для создания представления. Мы должны явно инициировать создание представления, например, обновив код класса:

Class MyExample
 include SimplyStored::Couch
 property :name
 view :example, :map=>"function(doc) { emit(doc.name, null)}",:type => :custom
 CouchPotato.database.view MyExample.example
end
...