1

Je reçois une erreur lors de l'exécution db:setup pour mon projet Hobo avec une base de données propre. J'ai deux modèles, A et B, où B étend A à travers l'héritage de table unique. Créer tout fonctionne. Mais si je commence avec une nouvelle base de données, râteau échoue avec une erreur:Rails et Hobo avec le problème de l'héritage de table simple

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

Voici les étapes je suis passé par de reproduire cela. Tout d'abord, créer l'application Hobo:

$ hobo testproject 

Créer le premier modèle, A:

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

Configuration database.yml, générer et exécuter la migration:

$ ruby script/generate hobo_migration 

Créer le second modèle , B:

$ruby script/generate hobo_model_resource b 

Modifier le modèle B pour étendre 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 

Générez et exécuter la migration:

$ ruby script/generate hobo_migration 

Voila. Tout fonctionne bien. Maintenant, si je supprime toutes les tables et exécuter db:setup, il échoue:

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

Suite aux suggestions à Ruby on Rails Single Table Inheritance (STI) and unit test problem (with PostgreSQL), j'ai essayé de supprimer test/fixtures/as.yml et test/fixtures/bs.yml, mais cela n'a pas aidé.

clochard 0.9.103
rails 2.3.5
râteau 0.8.7
JRuby 1.4.0RC1

Toutes les suggestions?

Répondre

1

On dirait que c'est un bug dans Hobo:

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

Selon 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.

Il suggère d'ajouter:

return unless table_exists? 

à tout débuter g de la méthode column (ligne 211 de hobofields/lib/hobo_fields/model_extensions.rb).

+0

Notez que cela a été corrigé le 24/01/2010 et est dans la dernière version candidate. – organicveggie

0

J'ai suivi toutes vos étapes, et tout a bien fonctionné. Avez-vous essayé rake db:schema:load?

hobo 0.9.104 
rails 2.3.5 
rake 0.8.6 
ruby 1.8.6 
+0

Yup. Même comportement Je ne sais pas pourquoi cela a fonctionné pour vous ... :( – organicveggie