3

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

想象一下,我正在为 Dog Lovers 建立一个问答网站:我希望一个人能够提出问题。然后,该人可以用任意字符串标记该问题(因为每个标记 gem 都支持),但是如果问题是关于特定的狗品种或狗品种,我希望用户还能够用犬种。犬种是我的 Web 应用程序中的一个模型,有很多元数据和它们自己的关联。

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

我当然知道我可以通过编写一些 has_many 关联逻辑来实现自己的目标,但是很多 Rails 可标记 gem 的优点是它们带有大量方法,可以帮助轻松查询和显示标记数据。

4

1 回答 1

0

我不知道有什么可以完全按照您的要求进行操作,但是acts_as_taggable_on gem 确实支持不同上下文中的标签。也许您可以为狗品种创建一个标签上下文,允许根据您的模型选择品种,然后使用品种模型记录的名称或 ID 作为品种上下文中的标签。您可以在此处找到更多信息,但您可以在模型中添加如下内容:

acts_as_taggable #for your normal tags
acts_as_taggable_on :breeds

然后,您可以使用以下方法找到带有品种标记的项目:

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

我知道这不正是您要寻找的,但这允许您使用现有 gem 的 find 方法,同时仍然允许您按照描述的方式分割标签。

于 2012-01-23T01:45:34.650 回答