2011-06-08 12 views
1

Ruby on Railsを開始するには、Rails Tutorialに従っています(4000回目)。私はかなり多くの時間をすでに読んで入力してきたので、最初の2つの章をかなりレースしていますが、私は解決できないような小さな問題に直面しました。変数がRoRで適切にエコーアウトされない

1つの章では、ページタイトルの表示をより動的にするためのヘルパ関数を作成することをお勧めします。

ヘルパーは次のようになります。

module ApplicationHelper 

    #return title on per page basis 
    def title 
    base_title = "Ruby on Rails Tutorial Sample App" 
    if @title.nil? 
     base_title 
    else 
     "#{base_title} | #{@title}" 
    end 
    end 
end 

私のコントローラは、次のようになります。

class PagesController < ApplicationController 
    def home 
    @title = "Home" 
    end 
    # more pages 
end 

そして最後に、私のアプリケーションのレイアウトファイルには、次の行が含まれます

<title><%= @title %></title> 

本は "echo"(これはPHPの用語ですか?Tee-heeですか?) e:

ホームページ。しかし、それはページタイトルとして「ホーム」だけをエコーし​​ます。

ここで何か見落としていますか?私は何かエラーや何かをタイプしたとは思わない。すべてが私にとってかなり論理的に見えますが、うまくいかないでしょう。

ありがとうございます!

答えて

3

は、変数、ではない方法を意味します。 @title変数が "Home"に等しいので、これがあなたのものです。メソッドを呼び出すには、

<title><%= title %></title> 
+0

Ohh、duh。愚かな私、私は彼らが本の@を削除して表示されませんでした。ありがとう! – cabaret

1

私はあなたが本から誤ってコピーしたと思います。 。あなたが抱えている問題は、無料サンプルの章である(良いこと:)

何本実際が持っていることは次のとおりです。

<title><%= title %></title> 

あなたが持っていることは次のとおりです。

<title><%= @title %></title> 

@では、変数を直接参照します。 @がなければ、メソッドtitle()を呼び出します。 (私は彼らが関数呼び出しの後()を入れていた希望が、それ慣用的なRubyのです。私は、Rubyのイディオムを嫌う。)あなたのビューで@titleを呼び出す

+0

Duhのようなものを試してください。愚かな私、私は本当にそこに行った小さな@を見逃しました。ああ、皆のための自由な担当者、ハハ。私を助けてくれてありがとう!そして、@がないというタイトルがメソッド呼び出しであることを説明してくれてありがとう。私は自分でそれを得たことはありませんでした。 – cabaret

関連する問題