1

Я получаю сообщение об ошибке при запуске db:setup для моего проекта Hobo с чистой базой данных. У меня две модели: A и B, где B расширяет A на однонаправленное наследование. Все работает. Но если я начну с новой базой данных, грабли завершается с ошибкой:Rails и Hobo с проблемой одиночного вызова таблицы

$ rake db:setup 
... 
rake aborted! 
Table as does not exist 

Вот шаги, которые я прошел, чтобы воспроизвести это. Во-первых, создать приложение бродяга:

$ hobo testproject 

Создать первую модель, A:

$ ruby script/generate hobo_model_resource a name:string type:string 

Setup database.yml, генерировать и выполнять миграцию:

$ ruby script/generate hobo_migration 

Создайте вторую модель , B:

$ruby script/generate hobo_model_resource b 

Редактировать B модель для расширения A:

class B < A 

    # --- Permissions --- # 
    def create_permitted? 
    acting_user.administrator? 
    end 

    def update_permitted? 
    acting_user.administrator? 
    end 

    def destroy_permitted? 
    acting_user.administrator? 
    end 

    def view_permitted?(field) 
    true 
    end 
end 

Создание и запустить миграцию:

$ ruby script/generate hobo_migration 

Voila. Все работает нормально. Теперь, если удалить все таблицы и запустить db:setup, он не:

$ rake db:setup 
... 
rake aborted! 
Table as does not exist 

После предложения на Ruby on Rails Single Table Inheritance (STI) and unit test problem (with PostgreSQL), я попытался удалить test/fixtures/as.yml и test/fixtures/bs.yml, но это не помогло.

бродяга 0.9.103
рельсы 2.3.5
грабли 0.8.7
JRuby 1.4.0RC1

Есть предложения?

ответ

1

Похоже, это ошибка в Хобо:

http://groups.google.com/group/hobousers/browse_thread/thread/2160e78762791946

Согласно Matt Jones:

The trace has the automatic scope code trying to see if inherited_without_inheritable_attributes is a column, which hits the
DB and dies.

Он предлагает добавить:

return unless table_exists? 

на очень beginnin г метода column (строка 211 от hobofields/lib/hobo_fields/model_extensions.rb).

+0

Обратите внимание, что это было исправлено на 1/24/2010 и находится в последнем кандидате на выпуск. – organicveggie

0

Я следил за всеми вашими шагами, и все сработало нормально. Вы пробовали rake db:schema:load?

hobo 0.9.104 
rails 2.3.5 
rake 0.8.6 
ruby 1.8.6 
+0

Yup. Такое же поведение. Не уверен, почему это сработало для вас ... :( – organicveggie