#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 Р. Бейтса демонстрирует все, что вам нужно!