Jestem nowy na szynach i nie można dowiedzieć się tego problemu ...Ruby on Rails modelu wewnątrz przestrzeni nazw nie można znaleźć w sterowniku
Mam kontroler
Admin::Blog::EntriesController
zdefiniowanego w app/controllers/admin/blog/entries_controller.rb
i mam model o nazwie
Blog::Entry
defin ed w app/model/blog/entry.rb
Kiedy próbuję uzyskać dostęp do mojego modelu ze sterownika, dostaję "uninitialized constant Admin::Blog::EntriesController::Blog"
z tej linii:
@blog_entries = Blog::Entry.find(:all)
Oczywiście to nie jest znalezienie nazw, które poprawnie jest dziwne, ponieważ zgodnie z tym, co przeczytałem, umieściłem mój model we właściwym folderze z poprawną składnią.
Jakieś pomysły na to, jak mogę to naprawić?
Dzięki
Ah, dzięki, to zadziałało. Okazuje się jednak, że muszę ustawić niestandardową nazwę tabeli dla mojego modelu. Ponadto, form_for pomocnika nie działa, ponieważ używa " _path" dla atrybutu akcji, myślę, więc rzuca błąd, że nie może znaleźć metody "blog_entries_path" ... Jakieś pomysły? –
nlaq
Zaczynam myśleć, że szyny marszczą brwi na wiele przestrzeni nazw dla modeli i kontrolerów ... To wstyd, ponieważ bardzo podoba mi się struktura ścieżki. – nlaq
konwencja szyn jest taka, że nazwy modeli są pojedyncze, podczas gdy kontrolery są w liczbie mnogiej.Może zmienić nazwę kontrolera Administratorzy :: Blogi :: EntriesController (tak, to wygląda dziwnie) Może powinieneś również przemyśleć użycie modeli z nazwami, prawdopodobnie są one bardziej kłopotliwe niż są warte, zobacz http://stackoverflow.com/questions/601768/namespaced-models-in-rails-whats-the-the-the-union – levinalex