Bearbeitet: gelöst mit
has_many :imagens, :class_name => "Imagem", :dependent => :delete_all
Das Problem, mit dem ich konfrontiert bin, sieht in etwa so aus: Rails: Nicht initialisierter konstanter Fehler bei Active Record
Meine iflections-Datei hat Folgendes:
inflect.plural "imagem", "imagens"
inflect.singular "imagens", "imagem"
Wenn ich versuche, die Bilder zu erhalten, wird dies zu einem Fehler:
veiculo = Veiculo.first
veiculo.imagens #uninitialized constant Veiculo::Imagen
Ich weiß nicht, warum das passiert
class Veiculo < ActiveRecord::Base
has_many :caracteristicas, :dependent => :delete_all
has_many :imagens, :dependent => :delete_all
# more irrelevant code
end
class Imagem < ActiveRecord::Base
belongs_to :veiculo
# more irrelevant code, has attached file
end
Antworten:
1 für die Antwort № 1Ich hatte gerade dasselbe Problem und habe die Antwort gefunden: Schienen "-Konventionen. Sie müssen beim Erstellen Ihrer Modelle befolgt werden UND bei der Verwendung von has_many: through / gehört_to darin.
class Imagem < ActiveRecord::Base
belongs_to :veiculo
# more irrelevant code, has attached file
end
Es sollte sein:
belongs_to :veiculos
Weil "veiculo" .pluralize "veiculos" gibt (Sie können dies in Ihrer Konsole testen!). Dies sollte Folgendes vermeiden: class_name, was mir persönlich nicht gefällt. :)
Falls Sie es verpasst haben (ich habe es zweimal getan), müssen Sie in Ihrer Beziehungstabelle singuläre Namen verwenden, wie z.