2

私はタグをウェブサイトに取り込もうとしていますが、数時間障害になっています。インデックスページに、少なくとも現在選択されているすべてのタグを持つすべての記事を表示したいと思いました。Rails 3の多対多のクエリ条件を見て、追加しました

@articles = Article.find_by_sql([ "SELECT * FROM articles p
JOIN (
    SELECT pt.post_id FROM articles_tags pt
    JOIN posts p ON p.id = pt.articles_id
    JOIN tags t ON t.id = pt.tag_id
    WHERE t.label IN (?)
    GROUP BY pt.post_id
    HAVING count(pt.post_id) = ?
) pt ON p.id = pt.post_id", names_array, names_array.size])

しかし、今度はそれを作成したユーザーを含め、タイムスタンプで並べ替えたいと思います。find_by_sqlの結果を含めたり並べ替えたりすることはできません

ヘルプ

4

1 に答える 1

0

著者がテーブル「作成者」にいると仮定すると、次のようになります。

@articles = Article.find_by_sql([ "SELECT * FROM articles p
JOIN (
    SELECT pt.post_id FROM articles_tags pt
    JOIN posts p ON p.id = pt.articles_id
    JOIN tags t ON t.id = pt.tag_id
    JOIN creators c ON c.id = p.creator_id
    WHERE t.label IN (?)
    GROUP BY pt.post_id
    HAVING count(pt.post_id) = ?
) pt ON p.id = pt.post_id ORDER BY articles.created_at", names_array, names_array.size])
于 2012-06-26T21:01:45.310 に答える