2010-07-31 103 views
0

新的Ruby,所以我仍然在掌握一些Rails框架以及它如何相關。我有一個關於爲什麼我的項目以某種方式表現的問題。Ruby on 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框架)的是,當我有關的任何文章點擊(新聞鏈接,文章鏈接),我的網頁的格式去和渲染頁面顯示時沒有側面菜單或標題。所有其他鏈接的行爲與預期相同,鏈接頁面顯示在「內容」窗格中。這裏發生了什麼?

我敢肯定,我的「M失去了一些東西很無聊,我似乎無法有什麼 - !這是令人沮喪的該死提前幫助一個福利局

謝謝...

回答

0

看來,您不會將佈局應用於某些控制器/操作。默認情況下,app/views/layouts/application.html.erb將應用於所有html操作。有很多方法可以重新定義佈局,例如控制器中可能有layout nil。請查看詳情:
http://guides.rubyonrails.org/layouts_and_rendering.html

如需更多幫助,請張貼控制器的來源有疑問

+0

謝謝你指點我到那個地方。我在2.2.12中找到了我的答案「要找到當前佈局,Rails首先在app/views/layouts中查找與控制器具有相同基本名稱的文件」。我使用腳手架,這意味着每個支撐腳本的對象都會自動生成一個文件。刪除這些不需要的佈局解決了這個問題 - 謝謝! – mrbernz 2010-07-31 15:14:13

0

如果你把在app/views/layouts/application.html.erb佈局代碼,然後將它應用到你的整個網站,除非明確覆蓋您可能會發現下面有幫助的資源:

+0

感謝您指出我到那個地方。我在2.2.12中找到了我的答案「要找到當前佈局,Rails首先在app/views/layouts中查找與控制器具有相同基本名稱的文件」。我使用腳手架,這意味着每個支撐腳本的對象都會自動生成一個文件。刪除這些不需要的佈局解決了這個問題 - 謝謝! – mrbernz 2010-07-31 15:13:24