Ruby on Rails - макет и ссылки - PullRequest
0 голосов
/ 31 июля 2010

новичок в Ruby, так что я все еще сталкиваюсь с некоторыми из фреймворков Rails и с тем, как они связаны. У меня есть вопрос о том, почему мой проект ведет себя определенным образом.

Я создал базовый макет, заголовок верхней части экрана, боковое меню слева и страницу содержимого для основной области. Ничего особенного, стандарт болота, как вы можете видеть из кода ниже. (Обратите внимание, по какой-то причине мой код ниже не хочет печататься правильно на этой странице !!)


-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
<% content_for :head do%>
 <% auto_discovery_link_tag %>
<% end %>

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>MyLife</title>
  <%= stylesheet_link_tag 'main'%>
  <%= javascript_include_tag :defaults %>
  <%= yield :head %>
 </head>
 <body>
  <div id="container">
   <div id="header">
    <%=image_tag 'mylife.jpg', :alt => "MyLife" %>
   </div>
   <div id="sidemenu">
    <%= render :partial => 'layouts/menu'%>
   </div>
   <div id="content">
    <% if flash[:notice] -%>
     <div id="notice"><%= flash[:notice]%></div>
    <% end -%>
    <% if flash[:error] -%>
     <div id="error"><%= flash[:error]%></div>
    <% end -%>
    <%= yield %>
   </div> 
  </div>
 </body>
</html>

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


<ul>
 <!-- These links are standard for everyone - links to the Homepage, and to the Articles news page -->
 <li><%= link_to 'Home', index_url %></li>
 <li><%= link_to 'News', articles_path %></li>

 <hr size = "1" width = "90%" aligh = "left" />

 <!-- The remaining links will change depending on context, login state & credentials-->
 <% if is_logged_in? %>
  <li> Logged in as: <i><%= logged_in_user.username %> </i></li>
  <li><%= link_to 'My Profile', edit_user_path(logged_in_user) %> </li>
  <li><%= link_to 'Articles', articles_path %> </li>
  <li><%= link_to 'Logout',{:controller => 'account', :action => 'logout'}, :method => :post  %> </li>
 <% else %>
  <li><%= link_to 'Signup', :controller => 'users', :action => 'new' %> </li>
  <li><%= link_to 'Login', :controller => 'account', :action => 'login' %></li>
 <% end %>

 <% if logged_in_user and logged_in_user.has_role?('administrator') %>
  <hr size="1" width="90%" align="left">
  <li><b>Admin Options</b></li>
  <li><%= link_to 'Administer Users', users_path %></li>
  <li><%= link_to 'Edit Page', pages_path%></li>
 <% end %>

 <% if is_logged_in? and logged_in_user.has_role?('editor') %>
  <hr size="1" width="90%" align="left">
  <li><b>Editor Options</b></li>
  <li><%= link_to 'Edit News Articles', admin_articles_path%></li>
  <li><%= link_to 'Edit News Categories', admin_categories_path%></li>
 <% end %>
</ul>

Мое разочарование (в связи с тем, что я новичок в инфраструктуре Rails), заключается в том, что когда я нажимаю на что-либо, связанное со статьей (ссылка на новости, ссылка на статьи), форматирование моей страницы происходит, и эта отображаемая страница отображается без бокового меню или заголовок. Все остальные ссылки работают должным образом, при этом страница со ссылкой отображается на панели Содержание. Что тут происходит?

Я уверен, что мне не хватает чего-то очень глупого, и я не могу показаться, что ... что чертовски разочаровывает!

Заранее благодарим за помощь новичку ...

Ответы [ 2 ]

0 голосов
/ 31 июля 2010

Кажется, вы не применяете макет к некоторым вашим контроллерам / действиям.По умолчанию app/views/layouts/application.html.erb будет применяться ко всем html-действиям.Есть много способов переопределить макет, например, у вас может быть layout nil в контроллере.Проверьте здесь для получения подробной информации:
http://guides.rubyonrails.org/layouts_and_rendering.html

Для получения дополнительной помощи, пожалуйста, опишите источник контроллера в сомнении

0 голосов
/ 31 июля 2010

Если вы введете код макета в app/views/layouts/application.html.erb, он будет применяться ко всему сайту, если он явно не переопределен. Вы можете найти полезные ресурсы ниже:

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