0

Rails アプリで解決しなければならないアーキテクチャの問題があります。私は、人々が毎日投票できる画像のギャラリーを持っています (上または下)。これらの画像は、スコアと created_at タイムスタンプによって並べ替えられるため、48 枚の画像を含む 1 日のトップ画像ギャラリーを取得できます (1 日に 48 枚を超える画像がアップロードされた場合でも)。

今日のトップに加えて、昨日と二日前のトップ画像を見ることができます.1つの画像を選択するたびにギャラリーの前の画像を見ることができる機能を追加したい.つまり、画像を選択できます. 5/48 で、矢印をクリックして 4/48 の画像 (前の画像) に移動できます …</p>

同様に、昨日の最初のトップ画像の前の画像は、今日の最後のトップ画像につながるはずです...

単純かもしれませんが、仕事をするための適切なクエリが見つかりません...何か提案をお願いします?

ありがとう

4

2 に答える 2

0

あなたはブレッドクラムについて話している。私はRubyを扱ったことはありませんが、ここに別の質問があります。誰の答えがあなたが探しているものかもしれません

Ruby on Rails のブレッドクラム

于 2012-06-26T16:05:19.033 に答える
0

画像を正しい順序で取得するクエリが既にあり、現在の画像がわかっている場合は、次/前の画像を簡単に見つけることができます。が現在のイメージ ID であると仮定する@idと、次のようなことができます。

top_images = Image.order("created_at ASC, score DESC")
prev = top_images.where("id < ?", @id).limit(1)
next = top_images.where("id > ?", @id).limit(1)

ORDER BY created_at ASC, score DESCその日のトップ ランクの画像に到達した後、時間をさかのぼって「前の」リンクが必要な場合は、より理にかなっています。

于 2012-06-26T21:49:29.027 に答える