Я новичок в рельсах и задаюсь вопросом, как наилучшим образом маршрутизировать мое приложение. Я использую устаревшую базу данных, поэтому схема уже настроена и немного усложняет ситуацию. В макет приложения входит верхняя панель навигации, которая включает в себя «пользователей», а затем для конкретного «пользователя» есть еще одна панель навигации для отображения/редактирования различных форм. Например, когда запрашивается конкретный «пользователь», существуют отдельные формы для «общей информации» и «информации учетной записи» и т. Д.Рельсы маршрутов для конкретной установки
У меня есть сейчас, чтобы иметь пространство имен пользователей, соответствующее верхнему уровню навигации и в пространстве имен имеют второй уровень навигации: «общий», «проект» и т. д. При этой настройке каждая форма, выбранная со второго уровня навигации, имеет свой собственный контроллер, который кажется немного странным.
namespace :users do
resources :general, :project
end
Это позволяет мне иметь следующие ссылки, где: идентификатор принадлежит к «пользователя»
/users/general/:id
/users/general/:id/edit
/users/account/:id
/users/account/:id/edit
Это кажется разумным и есть ли какие-либо другие идеи о том, как иметь дело с вложенной настройки навигации в RESTful способом? Унаследованная база данных усложняется тем, что у меня нет «общей», «учетной записи» модели или таблицы БД. Для каждой формы мне нужно вытащить из нескольких моделей/таблиц, имеющих ассоциации с «пользовательской» моделью. Наличие «общего» контроллера, не имея «общей» модели, не кажется очень рельсами, как то, что меня беспокоит.
Это выстрел в темноте, но считаете ли вы создание «общей» модели (а не подкласса ActiveRecord :: Base) для управления операциями в разных базовых таблицах, когда «общие» атрибуты CRUDed? Базовые таблицы могут наследовать от ActiveRecord :: Base для управления сохранением, а общая модель будет манипулировать ими для ведения записей в db. Ваш общий контроллер затем рассматривает экземпляр общего класса более или менее как AR-модель, но когда вы CRUD, модельная логика запускает и управляет тем, что действительно происходит в db. –