Рекомендации Ruby on Rails — создать контроллер страниц для общих макетов?

#ruby-on-rails #ruby #ruby-on-rails-3

#ruby-on-rails #ruby #ruby-on-rails-3

Вопрос:

Каков стандартный способ структурирования полустатических веб-страниц приложения Rails?

Я работаю в среде LAMP, и традиционно у меня были бы такие страницы, как эта:

 about.php
index.php
common/
    header.php
    footer.php
    scripts.php
    (etc)
sign-up.php
scripts/
    jQuery.js
    etc
styles/
    main.css
(etc)
  

Внутри этих файлов должно быть php include для верхнего, нижнего колонтитулов и т.д.

Должен ли я сгенерировать контроллер с именем Pages?

Ответ №1:

Чтобы ответить на ваш вопрос прямо: не создавайте контроллер для общего макета … Но следуйте приведенным ниже советам:

1. about.php, index.php, sign-up.php :

about и index действия могут быть собраны в контроллере, обычно я называю его Static .

Таким образом, логично, что представления будут в /app/views/static/

Для sign_up это будет зависеть от вашего выбора: хотите ли вы, чтобы он соответствовал вашей User модели. Как правило, он переходит к некоторому Registration контроллеру.

2. common/ header.php, footer.php, scripts.php стало бы:

layouts/_header.html.erb, _footer.html.erb, _scripts.html.erb вы должны создать макет, включающий эти части.

3. scripts/jQuery.js и styles/main.css перейдет к /public/javascripts и /public/stylesheets (по крайней мере, для Rails 3.0.x)

Ответ №2:

То, что вы ищете, это Layouts . По сути, вы определяете макет в /app/views/layouts (по умолчанию используется application.html.erb ), который является «оболочкой» для всего содержимого вашей страницы. Этот макет может включать любые другие файлы, которые вам могут понадобиться, и может динамически изменяться каждым отдельным представлением. Вы можете прочитать официальное руководство здесь.

Ответ №3:

Этот railscast Р. Бейтса демонстрирует все, что вам нужно!