0

userとの 2 つのモデルをセットアップしましたpost。それぞれ。post belongs_to_ s には、acts_as_taggable を使用したタグもあります。オンユーザーが使用するタグを、使用頻度の高いものから使用頻度の低いものへと並べ替えたいと考えています。userpostUserController#show

タグのリストを取得するのは難しくありませんが、どうすればそれらを並べ替えることができますか? これを使用してタグを見つけます。

@tags = []
@user.posts.each do |post|
  @tags += post.tags
end

タグを並べ替える方法を誰かに説明してもらえますか? ありがとう。

4

1 に答える 1

0

プラグインが提供するtag_countsメソッドを使用できます。

@user.posts.tag_counts

詳細はこちら:http ://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids

編集:

ソートのための基本的な単純なコード:

@tags = Hash.new(0)
@user.posts.each do |post|
  post.tags.each do |tag|
    @tags[tag] += 1 if @tags.has_key?(tag)
  end
end
# sorting
@tags.sort{|a,b| a[1] <=> b[1]}

多分それを行うためのより良い方法があります。

于 2010-08-13T14:34:21.060 に答える