1

200 文字に制限されたコンテンツをデータベースに入力できるテキスト ボックスを備えた非常に単純な Ruby on Rails アプリを用意しました。

私の目標は、ユーザーが何かを入力すると、増え続けるリストの一番上に表示されるように、テキスト ボックスの下に項目をリストすることです。

現在、動作しないくだらないコードがいくつかありますが、その理由はわかりません。

にあるビュー ページにはhome.html.erb、レッスンを表示するための次の領域があります。

<td class="my-lessons">

</td>

私のLesson controller中で私は次のものを持っています:

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

    puts @lesson.content
  end

私のコードで printLesson を呼び出す方法と、一般的にレッスンデータベースの内容を表示する方法がわかりません。

どんな助けでも大歓迎です

4

1 に答える 1

3

home.html.erbhttp://localhost:3000/lesson/homeに適切なルートが定義されている場合、 に移動するとレンダリングされますroutes.rb:

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 %>

あなたが抱えている問題は、Rails にコントローラ アクション ( 行puts @lesson.content) で入力を吐き出すように指示する必要があると考えていることです。Rails は規約に基づいて動作します。コントローラーのアクションで作成されたインスタンス変数は、ビューでアクセスできます。したがって、@lessons上記の例の変数はhome.html.erbビューでアクセスできます。

ルートとレンダリング ビューに関する詳細については、以下をお読みになることをお勧めします。

于 2012-05-14T06:56:14.390 に答える