Rails und Hobo mit Single Table Inheritance Problem
-
22-09-2019 - |
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?
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