Создание страниц без отдыха - PullRequest
0 голосов
/ 03 ноября 2011

Я только что перешел от использования фреймворков php mvc к рельсам и проходил через руководства и пожирал Railscasts.

Кажется, что все основано на спокойных ресурсах, и создание функциональности вокруг этих частей интуитивно понятно.

Части без отдыха / не на основе моделей немного менее интуитивны или, по крайней мере, кажутся менее освещенными документацией.

В моем веб-приложении есть 3 типа пользователей.Когда пользователь входит в систему, я хочу, чтобы он отображал страницу панели инструментов с некоторой базовой сводной информацией в зависимости от того, каким типом пользователя он является.

Как лучше всего это представить?Должен ли я просто создать новый контроллер действий с именем Dashboard для представления этой функциональности, не основанной на модели, а затем создать методы, которые мне нужны, например show, или есть лучшая стратегия?

Cheers

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Rails делает вашу жизнь по-настоящему легкой, если вы можете спокойно думать о своем приложении.Всякий раз, когда вам нужно создать новую функциональность, подумайте о том, что делает пользователь.Сосредоточьтесь на «существительном».

  • Показываете ли вы список вещей, возможно, отфильтрованных или отсортированных?: индекс
  • Показываете ли вы вещь, которая является одной из многих?Или только один?: показать
  • Нужно ли пользователю создавать что-то новое?Это не всегда означает сохранение в базу данных.Отобразите его в : новый и поместите результат в : создать
  • Изменяет ли пользователь какую-либо вещь?PUT to : обновить .Есть ли вид вещи или страницы до ее изменения?Используйте : edit
  • Что-то удаляется?: удалить

Если вас это смущает, не зацикливайтесь на разнице между : index и : show .Поместите свою функциональность в : индекс , чтобы начать, и вы узнаете, нужно ли ее переместить в : показать .

Также узнайте о различиях между обычнымиРесурс RESTful и отдельный ресурс - иногда (как в случае с Dashboard) может иметь смысл использовать resource :dashboard, а затем добавить функциональность в действие :show.

Познакомьтесь с http://guides.rubyonrails.org/routing.html, и не забудьте рассмотреть немодельные "вещи", даже если они не являются моделями.

В ВАШЕМ СЛУЧАЕ: Выесть три типа пользователей и панель инструментов.Вы можете представить пользователя и его роль в качестве моделей и сохранить эту информацию в сеансе (user_id).Затем, когда пользователь посещает /dashboard, он видит свое собственное представление (отображается в dashboard#show) на основе объектов User и Role.

1 голос
/ 03 ноября 2011

Да, вы можете создать новый контроллер Dashboard.

Если это, скорее всего, будет только действие show, вы можете просто добавить новый метод dashboard к контроллеру пользователя и маршруту match "/users/:id/dashboard" => "users#dashboard". * 1004.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...