2012-06-30 4 views
1

Michael Hartl (스크린 캐스트)의 Rails Tutorial을 실행 중입니다. 제목 도우미에 대한 4 장의 문제와 문제에 대해 알아 봅니다.레일 튜토리얼 Chapter 4 2nd Ed. Title 도우미가 호출되지 않고 호출되지 않습니다.

내가 모든 것을 확실히 이해할 수 있도록 코드에 자신 만의 비꼬아 넣었습니다. 그러나이 하나에 나는 아주 유사 하 왜 그것이 인 방법을 행동하고 있는지 아주 확실하지 않다. about.html 기본 Application_helper.rb

module ApplicationHelper 
    def full_title(page_title) 
    full_title = "Ruby on Rails Tutorial App" 
    full_title += " | #{page_title}" unless page_title.blank? 
    end 
end 

Home.html.erb

<h1><%= t(:sample_app) %></h1> 
<p> 
    This is the home page for the <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a> sample application 
</p> 

Application.html.erb

<!DOCTYPE html> 
<html> 
    <head> 
    <%- Rails.logger.info("Testing: #{yield(:title)}") %> 
    <title><%= full_title(yield(:title)) %></title> 
    <%= stylesheet_link_tag "application", :media => "all" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 
    </head> 
    <body> 
    <%= yield %> 
    </body> 
</html> 

: 여기

는 코드 .erb

<% provide(:title, t(:about_us)) %> 
<h1><%= t(:about_us) %></h1> 
<p> 
    The <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a> is a project to make a book and screencast to teach web development with <a href="http://railstutorial.org/">Ruby on Rails</a>. This is the sample application for the tutorial. 
</p> 

어떻게되는지 : 코드는 about 페이지와 같은 제공 방법을 설정할 때 잘 작동합니다. 그러나 내가하지 않으면 도우미에게 전화하는 것조차 보이지 않습니다. 나는 아무 제목도 돌려 보내지기 때문에 저것을 추측하고있다. 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

도움 주셔서 감사합니다.

편집 : 이것은 수정되었습니다. 마지막 줄이 아무 것도 반환하지 않았으며 내 코드가 작동하지 않는 이유가 무엇인지에 대해 Paul에게 감사드립니다. 그것을 변경하여 사건을 제출하지 않는 무언가를 반환합니다.

Application_helper.rb

module ApplicationHelper 
    def full_title(page_title) 
    full_title = "Ruby on Rails Tutorial App" 
    page_title.present? ? (full_title += " | #{page_title}") : full_title 
    end 
end 

답변

0

내가 page_title가 비어있는 경우는 아무것도 반환하지 않는 당신이 당신의 full_title 도우미 메서드의 마지막 줄에 문제가있는 것 같습니다 (일 모든는 그 지역 변수 full_title 할당 됨). 어떻게 다시 written in the book으로 변경하고 작동하는지 확인하십시오.

+0

당신 말이 맞습니다. 나는 그것을 고치기 위해 책 코드를 사용하지 않았지만 마지막 줄은 항상 어떤 것을 반환하도록 만들었다. 통찰력에 감사드립니다. 정확한 수정 방법은 내 편집을 참조하십시오. – SuddenlyAwakened