1

ユーザーがテキスト ボックスにエントリを作成して Enter キーを押すと、入力した文字列がテキスト ボックスの下のセクションに記録される小さなアプリを作成しています。

人が入力したもの、呼び出されたものはLessons、次のコードでページの下部に表示されます。

<% @allLessons.each do |lesson| %> 
    <tr>
        <td class="my-lessons">
            <b><%= lesson.content %></b> – <%= lesson.created_at.strftime("%b %d, %Y") %>
            <br />
        </td>
    </tr>
    <% end %>

各レッスンの日付を調べて、その日付が前日の日付よりも大きい場合、出力されたエントリ間に改行を挿入するものを書き込もうとしています。

これを行う方法について非常に困惑しています。すべての組み込み Ruby を で行うのが最善でしょうか、home.html.erbそれとも を使用しpages controllerてここでも支援するのが最善でしょうか?

4

2 に答える 2

0

前の回答を拡張するために、とが両方とも適切に Time オブジェクトであるとlesson.created_at.strftime("%Y%m%d").to_i > previous_lesson_date.strftime("%Y%m%d).to_i仮定して、上記の問題を解決するようなものがあります。lesson.created_atprevious_lesson_date

Time オブジェクトをより有効に活用する、より直接的な解決策があるかもしれません。

于 2012-05-24T14:30:30.970 に答える
-1

何かのようなもの:

<% @allLessons.each do |lesson| %>
  <% previous_lesson_date = lesson.created_at %>
    <tr>
        <td class="my-lessons">
            <b><%= lesson.content %></b> – <%= lesson.created_at.strftime("%b %d, %Y") %>
            <% if lesson.created_at > previous_lesson_date %>
              <br />
            <% end %>
        </td>
    </tr>
<% end %>

文字通りの答えです。ほとんどの場合、現在のレッスンはより大きな日付になります (数秒後に作成されるため)。本当に探しているものを得るには、おそらくRailsの日付関数をいじる必要があると思います。

于 2012-05-24T14:13:17.910 に答える