Hej, mam przykładową stronę…
Chcę na niej oddzielić kontrolery od siebie (żeby był porządek) w katalogu frontend - te od frontendu (czyli strona od strony użytkownika) a w katalogu backend od strony administratora.
Jak to zrobić . Czytałem o Namespace ale coś nie działa kontroler próbowałem generować tak:
rails g controller backend/home
ale dostaje jakiś błąd (info o braku parametrów i krótka pomoc w konsoli…),
wiem, że jak to zrobię co wyżej potem odpowiedni pliki w routes.rb i powinno być ok.
Chcę też zapytać o view/layouts można jakoś to też uzależnić od namespace np. dla jednego korzystam z application.html.erb a jak jestem w backend to z application_backend.html.erb czy coś w tym kierunku.
Chyba, że całkowicie źle podchodzę do tematu… proszę o nakierowanie.
rails g controller backend/home
jest jak najbardziej poprawnym poleceniem, powinieneś wykonać je będąc w katalogu aplikacji, to polecenie jest właściwe dla railsów w wersji większej niż 3.0. Wersję railsów możesz sprawdzić za pomocą polecenia rails -v. Jeśli masz starsze railsy to albo zainstaluj nowe np. gem i rails -v 3.2.7 albo
./script/generate controller backend/home
które powinno zadziałać w starszych wersjach railsów (wykonane w katalogu głównym aplikacji).
Co do layoutów to jak najbardziej możesz coś takiego zrobić, to powinno Cię naprowadzić http://guides.rubyonrails.org/layouts_and_rendering.html#finding-layouts
Jeśli chodzi o samo podejście do tworzenia aplikacji to jeśli tworzyłbym admin panel od zera nie korzystając z żadnego gotowca to wydzieliłbym przestrzeń nazw na sam admin panel, nie tworzyłbym bym specjalnej przestrzeni nazw na ‘frontend’. Wracając do routingów to to powinno Ci pomóc http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing . Jeśli generowanie kontrolera dalej by nie działało to wklej błąd, napisz z jakiego systemu operacyjnego korzystasz i jak instalowałeś rubiego
Mam Rails 3.2.8.
Już działa nie byłem w aplikacji. zrobiłem cd app i potem wywołałem polecenie i działa.
“Jeśli chodzi o samo podejście do tworzenia aplikacji to jeśli tworzyłbym admin panel od zera nie korzystając z żadnego gotowca to wydzieliłbym przestrzeń nazw na sam admin panel, nie tworzyłbym bym specjalnej przestrzeni nazw na ‘frontend’.” - A co jak będę miał dużo plików i po stronie admina i usera nie zrobi się bałagan?. Co do wydzielenia masz na myśli np to co admin to admin_nazwa - dla admina i nazwa - dla użytkownika ?
PS ROR jest super! jeszcze mam kłopot ze zrozumieniem samej logiki tego frameworka ale ogólnie extra. Samo kodowanie proste i przyjemne. Pracuję zdalnie na serwerach megiteam.pl system OS.
dzięki.
W stosunku do tego co opisałeś to zrobiłbym to połowicznie czli admin panel generowałbym w przestrzeni nazw admin:
rails g controller admin/home
tylko nie tworzyłbym osobnej przestrzeni dla ‘frontendu’ czyli nie zrobiłbym czegoś takiego
rails g controller forntend/home
wtedy struktura bedzie wyglądać tak:
|- app
|----controllers
|-------admin
|-----------home
|-----------articles
|-----------newsitems
|-------home
Nie sposób się nie zgodzić