Контроллер для главной страницы? - PullRequest
2 голосов
/ 21 сентября 2009

Я новичок в Ruby on Rails и уверен, что этот вопрос довольно глупый, но я не могу вывести ответ из примеров, которые я видел, возможно, я не видел много хороших примеров.

Веб-сайт, над которым я работаю, будет иметь «ящики» (т.е. виджеты) на одной боковой панели, которые будут содержать динамическое содержимое, а также на другой боковой панели будут ссылки на разделы веб-сайта, которые будут обрабатываться различными контроллерами. , Макет / стиль сайта останется неизменным на всех контроллерах. Например, если я нажму на одну ссылку, содержимое в центре изменится, но остальная часть дизайна и макета сайта останется прежней.

Мой вопрос заключается в том, должен ли я создать что-то вроде home контроллера, который будет обрабатывать главную страницу и макет сайта, а затем каким-то образом уступать макету конкретного контроллера, если он будет вызван, а затем указать этот контроллер в качестве корневого контроллера. в routes.rb? Мне просто интересно, как я могу указать, что компоновка должна оставаться относительно одинаковой, чтобы мне не нужно было использовать избыточность и вставлять один и тот же код компоновки для каждого контроллера. Это то, что кто-то в IRC рекомендовал создать контроллер home, но я хотел знать, был ли это нормальный способ ведения дел. Ответ на самом деле может быть действительно простым для всех, кого я забочусь, но так как я новичок в рельсах, я не обращаю внимания.

Я действительно не знаю, как правильно сформулировать свой вопрос, так как я относительно новичок в рельсах. Если что-то не имеет смысла, пожалуйста, дайте мне знать, и я постараюсь уточнить.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2009

Да, вы можете использовать для этого page_controller и установить его в качестве корневого URL-адреса вways.rb.

Имейте в виду, что вам не нужно использовать отдельный файл макета для каждого контроллера, если вы не хотите. Если вы создадите файл в layouts / application.html.erb, он будет использоваться во всем приложении. Вы можете переопределить его, создав другие макеты с именами в соответствии с контроллером, который будет выбран автоматически, или установите layout: other_name в вашем контроллере, чтобы изменить его.

1 голос
/ 21 сентября 2009

Если вы создадите файл application.html.erb в папке раскладок, он будет по умолчанию использоваться любым контроллером, у которого нет соответствующего файла раскладки в папке раскладок. Кроме того, вы можете вручную указать макет для использования в контроллере, добавив:

layout "your_layout_name"

в вашем контроллере.

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