0

我想要一個標籤系統,我可以通過創建它們的用戶來分離標籤。我遵循Railscast#167關於使用虛擬屬性設置標籤的方法,但這種方式只能讓我打電話給@ post.tags來查找帖子的標籤,但我無法調用@ user.tags並查找所有標籤。Rails 3:Railscast#167用於創建標籤的虛擬屬性 - @ user.tags

我該如何擴充這個內容,以便@ user.posts.tag(「music」)能夠用標籤音樂返回他們的所有帖子?

感謝您的幫助或洞察我做錯了什麼。

回答

2

@user.posts返回一個數組,所以你可以像這樣的東西過濾此很容易地:

@user.posts.select do |post| 
    post.tag_names.include? "music" 
end 

你可能會,但是,與沒有被即時加載在這種情況下記錄遇到的問題。像這樣的事情應該照顧到這一點:

Post.includes(:taggings => :tags).where("posts.user_id = ?", @user.id).select do |post| 
    post.tag_names.include? "music" 
end