Mam nieco dziwne wymagania dla nowej aplikacji Rails. Potrzebuję zbudować aplikację, w której wszystkie trasy są zdefiniowane w wielu przestrzeniach nazw (pozwól mi wyjaśnić). Chcę mieć aplikację, w której przedmioty szkolne (matematyka, angielski, etc) są przestrzenie nazw:Dynamiczne kontrolery z obsługą nazw w/awaryjne w szynach
%w[math english].each do |subject|
namespace subject.to_sym do
resources :students
end
end
To jest wielki i to działa, ale wymaga mnie do stworzenia przestrzeni nazw StudentsController
dla każdego pacjenta, co oznacza, gdybym dodaj nowy temat, a następnie muszę utworzyć nowy kontroler.
Co chciałbym jest stworzenie Base::StudentsController
a jeśli, powiedzmy, że Math::StudentsController
istnieje wtedy będzie on używany, a jeśli jej nie ma, to możemy dynamicznie utworzyć ten kontroler i dziedziczą Base::StudentsController
.
Czy to jest coś, co jest możliwe? Jeśli tak, to w jaki sposób mam to wdrożyć?
Po prostu utworzę wszystkie kontrolery nazw i będą dziedziczyć po kontrolerze bazowym. Następnie w razie potrzeby zastąp. –
Rozumiem, że mogę to zrobić, ale to da mi wiele kontrolerów, które będą zawierać deklarację klasy. Ponadto, jeśli mam 20 kontrolerów i chcę dodać nowy "obiekt", to potrzebuję skopiować 20 kontrolerów. –
Racja, widzę. Czy jest to faktyczne wymaganie, czy jest to tylko eksperyment? Ponieważ płynność "matematyki", "angielskiego" i cokolwiek innego przychodzi, nie nadaje się do wyświetlania nazw. A co z odwracaniem tego (uczniowie/matematyka)? W tym momencie naprawdę masz działanie kontrolera. Teraz * to * może poprawić dynamikę. –