使用acts-as-taggable-on查找指定的taggable_type

时间:2010-05-27 16:52:01

标签: ruby-on-rails acts-as-taggable-on

所以在另一个控制器中,我使用这样的查找:

@entries = Entry.find(:all, :conditions => ['live = ?', false])

找到所有带有错误“实时”列的条目。

在我的项目中,我使用两种不同的可标记类型,一种用于条目(Entry),另一种用于消息(Message)。在查看上面我尝试过的真实代码之后,你会认为我可以做类似的事情,在taggings表的taggable_type列中找到带有“Message”值的所有标记消息。

#this could help find only Messages with the taggable_type column value "Message"
@tagged_messages = Message.find(:all, :conditions => ['taggable_type = Message', true])

这里的问题是我的查找条件解决了消息模型[Message.find(...)哪个不起作用,因为[从我的理解]标签表没有关联的模型。我可能所以如何搜索与模型无关的表?我可能在这里完全遗漏了一些内容。我非常感谢任何有助于我理解这一点或帮助实现此功能的帮助或代码。感谢您阅读我的问题

1 个答案:

答案 0 :(得分:1)

@tagged_messages = Tagging.find_all_by_taggable_type('Message').map(&:taggable)应该做你想做的事。您可能还需要在某处放置uniq