Я думал, что views / layouts / application.html.erb должен был применяться ко всем макетам? - PullRequest
0 голосов
/ 07 октября 2010

Я сейчас пытаюсь создать приложение ruby ​​on rails.Я создал views / layouts / posts.html.erb, который стилизовал мои представления PostsController.

Я хочу добавить главную панель, которая всегда находится вверху страницы, независимо от того, какой вид пользователясмотря на.Я думал, что это то, для чего был views/layouts/application.html.erb.

Это, кажется, согласится со мной: http://jacqueschirag.wordpress.com/2007/08/02/rails-layout-and-nested-layout-basics/

  • Все приложение Rails (все представлениявсех контроллеров) будет использовать этот макет:

    views/layouts/application.rhtml

  • Все виды в одном контроллере будут использовать этот макет.Например, макет для weclome_controller.rb будет использовать этот макет.Обратите внимание, что _контроллер для макета отключен:

    views/layouts/welcome.rhtml

Что я делаю не так?

Здесьэто то, что у меня есть в теле моего application.html.erb

  <div id="top-bar">
      <div id="user_nav">
        <% if current_user %>
          <%= link_to "My Profile", current_user %>
          <%= link_to "Logout", logout_path %>
        <% else %>
          <%= link_to "Register", new_user_path %>
          <%= link_to "Login", login_path %>
        <% end %>
      </div>
    </div>
    <%= yield %>

Ответы [ 3 ]

5 голосов
/ 07 октября 2010

Обе ваши раскладки, application.html.erb и posts.html.erb должны отображать главную панель как частичную:

<%= render :partial => 'layouts/main_bar' %>

Все раскладки содержат элемент <html>, который оборачивает вашу страницу;у вас нет одного макета, оборачивающегося вокруг другого.

1 голос
/ 07 октября 2010

Я в замешательстве ... у вас все еще есть views / layouts / posts.html.erb? В этом случае все представления, отображаемые из PostsController, будут использовать этот макет, а не views / layouts / application.html.erb

1 голос
/ 07 октября 2010

Ну, информация верна - 'views / layouts / application.html.erb' должен работать просто отлично.Включили ли вы содержимое «главной панели», используя <%= ..... %> (то есть, пропустили ли вы знак = в файле макета?) И включили ли вы оператор <%= yield %> где-нибудь в файле макета?Кроме того, какую версию Rails вы используете?

Вы должны найти это Макеты и рендеринг в Rails очень полезны для понимания основ рельсовых представлений и макетов

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