Навигация
Наше первое действие
Добавим к нашему контроллеру say действие под названием hel 1о. Из рассуждений,
приведенных в предыдущем разделе, мы знаем, что добавление действия
h e l l o означает создание метода под названием h e l l o в классе SayController.
Но что он должен делать? Пока ничего. Запомните, что работа контроллера заключается
в определении порядка вещей, при котором представление знает, что
ему нужно выводить на экран. В нашем первом приложении определять нечего,
поэтому вполне сойдет и совершенно пустое действие. Чтобы изменить содержимое
файла say_controller.rb, который находится в каталоге app/controllers, и добавить
в него метод h e l l o , как показано в примере, воспользуйтесь привычным для
вас текстовым редактором.
Листинг файла app/controllers/say_controller.rb
class SayController < ApplicationController
def hello
end
end
Теперь попробуем осуществить вызов. Перейдите в окне браузера по URL http://
localhost:3000/say/hello. (Заметьте, что в разрабатываемом приложении в начале
пути отсутствует какая-либо строка, указывающая на само приложение — мы обращаемся
непосредственно к контроллеру.) Вы увидите на экране нечто подобное.
Для вас такая реакция может показаться неприятной, но указание на ошибку
вполне обоснованно (за исключением указания какого-то странного пути). Мы
создали класс контроллера и метод действия, но не указали Rails, что именно
нужно отображать. Вот теперь пришла пора заняться представлением. Помните,
мы запускали сценарий, создающий новый контроллер? В результате выполнения
команды к нашему приложению добавились три файла и новый каталог.
Этот каталог содержал файлы шаблонов для представлений контроллера. В нашем
случае мы создали контроллер под названием say, поэтому представления
должны быть в каталоге app/views/say.
Чтобы завершить работу над приложением Hello, World!, создадим шаблон. По
умолчанию Rails ищет шаблоны в файле, имеющем имя, совпадающее с именем
действия, которое она совершает. В нашем случае это означает, что нам нужно
создать файл под названием hello.rhtml в каталоге app/views/say. (Почему этот файл
имеет расширение .rhtml? Мы объясним это буквально через минуту.) А теперь
поместим в этот файл элементарный HTML-код.
Листинг файла app/views/say/hello.rhtml
npHBeT, Rai I s !
<п1>Привет от Rails!
Сохраните файл под именем hello, rhtml и обновите информацию, отображаемую
в окне браузера. Вы увидите, что в окне появится наше дружественное приветствие.
Заметьте, что нам не пришлось перезапускать приложение, чтобы увидеть
это обновление. В процессе разработки, как только вы сохраните файлы,
Rails автоматически вставляет изменения в работающее приложение.
На данный момент мы добавили код к двум файлам, находящимся в древовидной
структуре нашего Rails-приложения. Мы добавили действие к контроллеру
и создали шаблон для отображения страницы в браузере. Эти файлы расположены
в стандартных местах иерархической структуры Rails: контроллеры размещаются
в подкаталоге app/controllers, а представления — в app/views. Эта структура
показана на рис. 4.4.