Frage

Ich erhalte eine Fehlermeldung, wenn db:setup für mein Hobo Projekt mit einer sauberen Datenbank ausgeführt wird. Ich habe zwei Modelle A und B, wobei B durch A single-table-Vererbungs erstreckt. Erstellen alles funktioniert. Aber wenn ich mit einem frischen Datenbank, Harke nicht mit einem Fehler:

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

Hier sind die Schritte, die ich durchgemacht habe, dies zu reproduzieren. Erstellen Sie zunächst die Hobo App:

$ hobo testproject
Erstellen

das erste Modell, A:

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

Setup database.yml erzeugen und führen Sie die Migration:

$ ruby script/generate hobo_migration

Erstellen Sie das zweite Modell, B:

$ruby script/generate hobo_model_resource b

Bearbeiten des B Modell A erweitern:

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

erzeugen und die Migration ausgeführt wird:

$ ruby script/generate hobo_migration

Voila. Alles funktioniert gut. Nun, wenn ich alle Tabellen und Lauf db:setup löschen, es fehlschlägt:

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

Im Anschluss an die Vorschläge unter Ruby on Rails Single Table Inheritance (STI) und Unit-Test-Problem (mit PostgreSQL) , versuchte Entfernen ich test/fixtures/as.yml und test/fixtures/bs.yml, aber das hat nicht geholfen.

Hobo 0.9.103
Schienen 2.3.5
Rake 0.8.7
jruby 1.4.0RC1

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Sieht aus wie es ist ein Fehler in Hobo:

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

Laut Matt Jones:

  

Die Spur hat den automatischen Umfang Code versucht zu sehen, ob inherited_without_inheritable_attributes eine Spalte, die die
Treffer   DB und stirbt.

Er schlägt vor, fügt hinzu:

return unless table_exists? 

ganz am Anfang des Verfahrens column (Zeile 211 von hobofields/lib/hobo_fields/model_extensions.rb).

Andere Tipps

Ich habe alle Ihre Schritte, und alles hat gut funktioniert. Haben Sie versucht, rake db:schema:load?

hobo 0.9.104
rails 2.3.5
rake 0.8.6
ruby 1.8.6
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top