Rails标记宝石,支持用其他模型标记模型?

时间:2011-08-23 09:04:33

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

大多数Rails标记gems支持使用任意字符串标记对象。 (除此之外)我想用其他对象标记一个对象。

想象一下,我正在为狗爱好者建立一个Q& A网站:我希望一个人能够提出一个问题。然后,该人可以用任意字符串标记该问题(如每个标记宝石支持),但如果问题是关于特定的狗品种或狗品种,我希望用户另外能够用狗的品种。狗品种是我的Web应用程序中的一个模型,具有许多元数据和自己的关联。

我所能找到的所有Rails标记宝石只是将标记视为单词;我想知道是否有一个支持标签作为对象/模型本身的宝石。

我当然知道我可以通过编写一些has_many关联逻辑来完成自己的工作,但是很多Rails可标记宝石的好处在于它们提供了许多方法来帮助查询和显示标签数据非常容易。< / p>

1 个答案:

答案 0 :(得分:0)

我不知道你究竟在做什么,但是acts_as_taggable_on gem确实支持不同上下文中的标签。也许您可以为狗品种创建标签上下文,允许根据您的模型选择品种,然后使用品种模型记录的名称或ID作为品种上下文中的标签。您可以找到更多信息here,但您可以在模型中添加以下内容:

acts_as_taggable #for your normal tags
acts_as_taggable_on :breeds

然后你可以使用以下方法找到用品种标记的物品:

Question.tagged_with('border collie', :on => :breeds)

我知道这并不是你想要的,但是这允许你使用现有宝石的查找方法,同时仍然允许你按照你描述的方式分割你的标签。