変更のために、私はRailsアプリケーションの代わりに、Ramaze、したがってSequel、ベースのアプリを使用しています。Sequel :: Modelを使用して2つのテーブルにまたがるページを作成する方法は?
Iは結合テーブル:external_post_taggings
介して多対多の結合テーブル:taggings
介し:posts
に関連付けられているモデルTag
、及び:external_posts
とを有しています。
これらの関連付けをまとめて収集し、それぞれのテーブルにcreated_at
と呼ばれる日付フィールドで並べ替えたいとします。
改ページがなければ、私はどうなる:
@combined = (@tag.posts + @tag.external_posts).sort_by(&:created_at).reverse
はしかし、私は改ページを使用する必要があります。それはちょうど私がどうなる.postsた場合:
@posts = @tag.posts.paginate(page, 10)
が、それも可能だ場合、私は2つのテーブル間でページ付けする方法がわかりません。投稿やexternal_postsは、同じモデルクラスを使用しない限り
@tag.posts_dataset.
union(@tag.external_posts_dataset).
order(:created_at.desc).
paginate(page, 10)
しかし、これは問題があります:あなたがタグとポストの組み合わせをページ分割したいと仮定すると、
うん、彼らは2つの異なるモデルクラスです。だから、私は一度に1ページずつ進んで、オフセットを記録しておく必要があります。私が望むページに到達するまでは? yikes、複雑な音:)私はあなたが正しいと思う。 –