0

コメントの表示と非表示に取り組んでおり、デフォルトで最新の 2 つを表示します。

ヘルパー メソッド:

  def comments(micropost_id)
        Comment.where(:micropost_id => micropost_id).limit(2).order("created_at DESC").reverse
  end

2 つのコメントは次のように表示されます。

コメント 1 (10 時間前に送信)

コメント 2 (1 時間前に送信)

その特定のマイクロポストのすべてのコメントをリストに追加するクリック可能なすべてのコメントを表示するボタンがあります。これは、最新の 2 つを除くすべてのコメントが必要であるという事実を除けば問題ありません。

を使用offset(2)すると、最初の 2 つのコメントが削除されます。私は基本的にこれの反対をする必要があります。これを達成するためのメソッドにチェーンできるものがあるかどうかoffset、またはその逆を行うための専用のメソッドがあるかどうか疑問に思って.offset()いますか?

よろしくお願いします

4

2 に答える 2

1

データベースからすべてのコメントを取得し、アプリケーション コードの最後の 2 つを破棄します。これにより、クエリが非常にシンプルで効率的になります。データベースは従来、スケーリングが最も難しいコンポーネントであるため、不必要な負荷をかけてはなりません。

于 2012-04-18T11:28:41.033 に答える
1

You can do as sergio suggests, chop off the last two after you load them from the database or you can reverse the order clause in the query, offset by two and then reverse the result.

于 2012-04-18T11:29:57.260 に答える