Ich bin neu in Controller gefunden werden, um diese Ausgabe zu den Schienen und kann nicht herausfinden ...Ruby on Rails-Modell innerhalb Namespace kann nicht
ich einen Controller in
Admin::Blog::EntriesController
definiert haben app/controllers/admin/Blog/entries_controller.rb
Und ich habe ein Modell
Blog::Entry
defin genannt ed in app/Modell/Blog/entry.rb
Wenn ich versuche, mein Modell von der Steuerung zuzugreifen, erhalte ich ein "uninitialized constant Admin::Blog::EntriesController::Blog"
aus dieser Zeile:
@blog_entries = Blog::Entry.find(:all)
es den Namespace nicht richtig klar ist das Auffinden, die ist seltsam, denn nach dem, was ich gelesen habe, habe ich mein Modell in den richtigen Ordner mit der richtigen Syntax gelegt.
Irgendwelche Ideen, wie ich das beheben kann?
Dank
Ah, danke, das hat funktioniert. Es stellt sich jedoch heraus, dass ich auch einen benutzerdefinierten Tabellennamen für mein Modell festlegen muss. Auch das form_for helper funktioniert nicht, da es " _path" -Dinge für das Aktionsattribut benutzt, denke ich, also wirft es einen Fehler, dass es die Methode "blog_entries_path" nicht finden kann ... Irgendwelche Ideen? –
nlaq
Ich fange an zu denken, dass Rails auf mehrere Namespaces für Modelle und Controller runzelt ... Was ist eine Schande, weil ich wirklich die// Pfadstruktur mag. –
nlaq
die rails convention ist, dass modellnamen singular sind, während controller plural sind.Vielleicht den Controller umbenennen Admins :: Blogs :: EntriesController (ja, das sieht komisch aus) Vielleicht sollten Sie auch mit Namespaced-Modellen zu denken, sie sind wahrscheinlich mehr Ärger als sie wert sind, siehe http://stackoverflow.com/questions/601768/namespaced-models-in-rails-was-ist-der-status-der-union – levinalex