0
最近のブロードキャストタグを収集する必要があります。関連するリソースに基づいて異なるリソースを返すためのRailsクエリ
私は私がタグ付けし、そのすべてのタグを見つけるために、放送に参加する必要が把握先月で、ユーザーの放送からタグを見つけたいと思い、私はこれらのモデルは
class Broadcast < AR::Base
belongs_to :user
has_many :broadcast_tags
has_many :tags, through: :broadcast_tags
end
class Tag < AR::Base
has_many :broadcast_tags
has_many :broadcasts, through: :broadcast_tags
end
class BT < AR::Base
belongs_to :broadcast
belongs_to :tag
end
を設定している
ユーザーが複数の最近の放送でそれらを使用している場合、これは個々のタグを複数回返し
Tag.joins(:broadcasts).where(
broadcasts: { user_id: current_user.id, created_at: Time.current.all_month }
)
これらの放送で使用されています。私は別個のタグを受け取るだけです。私が別名を呼び出すだけで、どちらがうまくいくのですか?
Tag.joins(:broadcasts).where(
broadcasts: { user_id: current_user.id, created_at: Time.current.all_month }
).distinct
これらの別個のタグは、ブロードキャストで見つかった順序で注文する必要があります。だから、
- 最後の放送は、タグ10、9、6、1
- 最後の隣には、私がしたタグをご希望のタグ9、2、1
を持っている場合この順序で戻される私は.order('broadcasts.created_at DESC')
WHを試みた2
10、9、6、1、いくつかのより多くの検索と頭を掻くとドキュメントの読み取りが、私はこの
を行うことができます実現した後、ICHは、うまくいけば、それは他の誰かが助けfor SELECT DISTINCT, ORDER BY expressions must appear in select list