Добавление пользовательских представлений с помощью дивана_картошки и просто_сохранено?

Я создаю приложение для рельсов поверх CouchDB и решил попробовать драгоценные камни Couch_potato и Simply_stored, поскольку они, кажется, добавляют хороший набор функций поверх остальных API и поставили разработку CouchDB «на рельсы».

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

Однако мне не удалось использовать ключевое слово 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, как я и ожидал, однако я наверняка где-то упускаю момент.

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

Спасибо,


person devlearn    schedule 20.04.2010    source источник


Ответы (1)


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

Class MyExample
 include SimplyStored::Couch
 property :name
 view :example, :map=>"function(doc) { emit(doc.name, null)}",:type => :custom
 CouchPotato.database.view MyExample.example
end
person devlearn    schedule 21.04.2010
comment
Я отказался от этого... а потом наткнулся на это :) - person mraaroncruz; 04.07.2011
comment
Рад, что помогло! Это хороший фреймворк, однако, как обычно с Ruby, вам нужно копаться внутри и снаружи, чтобы понять, как он работает ;) - person devlearn; 12.07.2011