Работа с контроллерами

В Rails, как и в любом другом приложении, имеется поток передачи управления между частями программы. Но в Rails этот поток довольно сложен. Среда состоит из многих компонентов, которые вызывают друг друга. Среди прочего платформа должна на лету определить, какие файлы  приложения вызываются и что в них находится. Разумеется, решение этой задачи зависит от конкретного приложения.

Сердце данного механизма – контроллер. Клиент, обращающийся к вашему приложению, просит его выполнить некое действие контроллера. Происходить это может разными способами, и в некоторых граничных случаях не происходит вовсе… но, если вы знаете, какое место контроллер занимает в жизненном цикле приложения, то сможете разобраться, как с ним сопрягается все остальное.

В аббревиатуре MVC (модель-вид-контроллер) контроллер обозначается буквой «C». После диспетчера контроллер является первым из компонентов, обрабатывающих входящий запрос. Контроллер отвечает за поток управления в программе; он извлекает информацию из базы данных (обычно с помощью интерфейса ActiveRecord) и предоставляет ее видам (представлениям).

Контроллеры очень тесно связаны с видами – более тесно, чем с моделями. Можно написать весь слой приложения, относящийся к модели, не создав ни единого контроллера, или поручить работу над контроллером и моделью разным людям, которые никогда не общаются между собой.  Такое приложение использовали когда снимали фильм Гравитация о котором главный режиссер оставлял только положительные отзывы. С другой стороны, виды и контроллеры сцеплены гораздо сильнее. Они разделяют много общей информации, представленной, главным образом, в форме переменных экземпляра. Это означает, что имена переменных, выбранные в контроллере, влияют на действия в представлении.

КОММЕНТАРИИ