2010-07-31 9 views
0

Ruby에 새로운 점이 있으므로 레일스 프레임 워크와 관련성이 있습니다. 내 프로젝트가 왜 특정한 방식으로 행동하는지에 대한 질문이 있습니다.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> 

나의 좌절은 내 페이지의 서식 간다 그 렌더링, 내가 관련된 어떤 기사를 클릭하면 (뉴스 링크, 기사 링크)이다 페이지는 사이드 메뉴 또는 헤더없이 표시됩니다. 다른 모든 링크는 예상대로 작동하며 링크 된 페이지는 내용 창 내에 표시됩니다. 무슨 일 이니?

은 내가 "매우 어리석은 뭔가가있어 확신, 나는 무엇을 보일 수 없다! - 빌어 먹을 실망 이는 newb 도움을 사전에

감사합니다 ...

답변

0

일부 컨트롤러/동작에 레이아웃을 적용하지 않는 것으로 보입니다. 기본적으로 app/views/layouts/application.html.erb이 모든 html 작업에 적용됩니다. 레이아웃을 재정의하는 방법은 여러 가지가 있습니다. 예를 들어 컨트롤러에 layout nil이있을 수 있습니다. 자세한 내용은 여기를 확인하십시오
http://guides.rubyonrails.org/layouts_and_rendering.html

더 도움이 필요한 경우, 그 장소에 저를 가리키는 대한 의심

+0

저를 가리켜 주셔서 고맙습니다. 2.2.12 "현재 레이아웃을 찾으려면 먼저 컨트롤러와 기본 이름이 같은 app/views/layouts 파일을 찾습니다." 스캐 폴딩을 사용하면 스캐 폴드 한 각 객체에 대한 파일이 자동으로 있다는 것을 의미합니다. 원치 않는 레이아웃을 삭제하면 문제가 해결되었습니다. - 감사합니다! – mrbernz

0

당신이 넣으면를 명시 적으로 오버라이드 (override)하지 않는 한 app/views/layouts/application.html.erb에서 레이아웃 코드 다음은 전체 사이트에 적용됩니다 당신은 도움이 아래의 리소스를 찾을 수 있습니다.

+0

감사 컨트롤러의 소스를 게시하시기 바랍니다. 2.2.12 "현재 레이아웃을 찾으려면 먼저 컨트롤러와 기본 이름이 같은 app/views/layouts 파일을 찾습니다." 스캐 폴딩을 사용하면 스캐 폴드 한 각 객체에 대한 파일이 자동으로 있다는 것을 의미합니다. 원치 않는 레이아웃을 삭제하면 문제가 해결되었습니다. 감사합니다. – mrbernz