2012-05-14 4 views
1

Ruby on Railsの非常にシンプルなアプリケーションです。テキストボックスには200文字までのコンテンツを入力できます。HTML出力のすべてのデータベースエントリを表示するのに苦労します

私の目標は、ユーザーが何かを入力すると常に成長するリストの上部に表示されるように、テキストボックスの下に項目をリストすることです。

今、私はうまくいかないコードをしていますが、私はなぜそれがわかりません。

def printLesson 
    @lesson = Lesson.find(params[:id]) 

    puts @lesson.content 
    end 

私は:私のLesson controller

<td class="my-lessons"> 

</td> 

私は、次があります。レッスンはで表示されるためにhome.html.erbにある私の見解ページで

、私はこの領域を持っています私のコードでprintLessonを呼び出す方法がわからず、レッスンデータベースの内容を表示する方法が一般的です。

すべてのヘルプは大

+0

AJAXまたは全くAJAX? –

+0

私のアプリケーションにAJAXがありません –

+0

RESTfulルーティングを使用していないようですね。 –

答えて

3

home.html.erbあなたがroutes.rbで定義された適切な経路を持って提供http://localhost:3000/lesson/homeに行くときレンダリングされるいただければ幸いです。

match 'lesson/home' => 'lesson#home' 

だからあなたLessonコントローラで、homeアクションでてきたが次のようになります。

def home 
    @lessons = Lesson.all 
end 

home.html.erbビューは@lessons

<% @lessons.each do |lesson| %> 
<tr> 
    <td class="my-lessons"> 
     <%= lesson.Name %> 
    </td> 
</tr> 
<% end %> 

あなたがあなたのコントローラのアクション(ラインputs @lesson.content)で入力を吐き出すためにRailsのを伝えるために持っていることを考えている抱えている問題の内容をレンダリングします。 Railsは大会で働いています。コントローラのアクションで作成されたインスタンス変数は、ビューからアクセスできます。したがって、上記の例の@lessons変数は、home.html.erbビューでアクセス可能です。

は、私は、読み取りを持つことをお勧めルートやレンダリングビューで行うための詳細については、以下:

+0

私の最後から来たミスコミュニケーションの1つ、home.html.erbへのルートはapp/views/pages/home.htmlです.erbではなくapp/views/lessons/home.html.erb。どんな種類のルーティングが完了する必要があるか、どんな考えですか? –

+0

アプリ内のビューの場所がURL内のパスに対応していません。あなたはRailsの慣習に従い、 'app/views/lesson/home.html.erb'に入れておく方がはるかに優れています。 – Soliah

+0

ありがとうソリア。だから私はそれらのレッスンを見せて、それを働かせました。 views/pages/home.html.erbに同じことを表示する最も効率的な方法は何ですか? –

関連する問題