2013-08-16 7 views
8

chciałbym grupie wszystkie moje kontrolerów i ich poglądy w folderach na przykład w „admin”Szyny 4: Grupowanie Controllers w folderze

To co zrobiłem:
(1) I przeniósł wszystkich controllers pod folder admin
(2) przeprowadziłem cały views pod folderze admin

(3) czytałem w prowadnicach, że należy to zrobić:

scope module: 'admin' do 
    resources :admin_permissions, :admin_layout, :admin_db 
end 

ale wciąż otrzymuję błąd

ActionController::RoutingError at /admin_permissions/index 
uninitialized constant AdminMainController 

katalog strukturę:

controllers 
    -> admin 
    -> admin_main_controller 
    -> admin_permissions_controller 
    -> admin_layouts_controller 
    -> admin_db_controller 
views 
    -> admin 
    -> admin_main 
    -> admin_permissions 
    -> admin_layouts 
    -> admin_db 

Wszystkie trzy pierwsze kontrolery dziedziczą admin_main która dziedziczy z zastosowania

Wszelkie doradzić na co czytać/sprawdzić?

Odpowiedz

8

Jeśli wykonasz rake routes, zauważysz, że nazwy wszystkich kontrolerów są poprzedzone prefiksem "admin /".

Ponieważ przenosisz kontrolery do katalogu "admin", powinieneś dodać obszar nazw do każdego kontrolera. Na przykład:

class Admin::AdminMainController < ActionController::Base 
end 

Sprawdź swoje kontrolery, widoki i pomocników, zaktualizuj wszystkie odpowiednie ścieżki i nazwy kontrolerów.

+0

Dzięki! Dodałem go wszędzie, czy włączam go również, gdy importuję pomocnika? "include Admin :: AdminMainHelper" lub po prostu "include AdminMainHelper" – nevermind

+0

Zależy teraz od nazwy modułu twojego helpera. Jeśli nazwa to "Admin :: AdminMainHelper", więc "include Admin :: AdminMainHelper" lub "include AdminMainHelper" – Bigxiang

+0

działa teraz! z Admin :: AdminMainHelper – nevermind