Rails 3: виртуальный атрибут Railscast # 167 для создания тегов - @ user.tags - PullRequest
0 голосов
/ 24 июня 2011

Я хотел бы использовать систему тегов, в которой я могу разделять теги по пользователю, который их создал.Я следовал Railscast # 167 о настройке тегов с использованием виртуальных атрибутов, но таким образом я могу только вызывать @ post.tags, чтобы найти теги для поста, но я не могу позвонить @ user.tags и найти все их теги.

Как я мог бы увеличить это так, чтобы @ user.posts.tag ("музыка") возвращал все свои сообщения с тегом music?

Спасибо за помощь или понимание того, что я 'Я делаю неправильно.

1 Ответ

2 голосов
/ 24 июня 2011

@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
...