【问题标题】:Rails tagging gem that supports tagging a model with other models?支持用其他模型标记模型的 Rails 标记 gem?
【发布时间】:2011-08-23 09:04:32
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我不知道有什么可以完全按照您的要求进行操作,但是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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 2021-02-27
      • 1970-01-01
      相关资源
      最近更新 更多