【问题标题】:allow duplicate taggings using acts-as-taggable-on允许使用acts-as-taggable-on 进行重复标记
【发布时间】:2023-03-30 09:49:01
【问题描述】:

Rails 新手在这里!

我正在使用acts-as-taggable-on 来实现基本标记,但我想修改默认行为,以便可以使用同一个标记多次标记模型的每个实例(例如帖子)。

@post.tag_list.add("awesome, awesome", parse: true) 

在默认行为中只会创建一个标签和一个标签。我希望它在数据库中使用相同的标签,但为该帖子创建两个唯一的标签。

最终,我希望能够计算@post 被标记为“真棒”的次数,这样我就可以计算每个帖子的标签频率。不需要滚动我自己的标签实现的最佳方法是什么?

我正在尝试向用户添加重复的标签。我希望一些用户 x 有多个“真棒”标签。默认实现不会让我这样做。

默认实现:

@instance.tag_list = "awesome, awesome, awesome"
@instance.save
@instance.reload
@instance.tags => 
[#<ActsAsTaggableOn::Tag id: 1, name: "awesome", taggings_count: 1>] 

我希望 taggings_count 改为返回 3,因为我想将 3 个单独的标签设为“真棒”,即使它们都引用同一个标签。

【问题讨论】:

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


    【解决方案1】:

    这个库已经计算了标签。只需查看标签记录的属性taggings_count。 来自文档:

    @user.tag_list = "awesome, slick, hefty"
    @user.save
    @user.reload
    @user.tags
    => [#<ActsAsTaggableOn::Tag id: 1, name: "awesome", taggings_count: 1>,
     #<ActsAsTaggableOn::Tag id: 2, name: "slick", taggings_count: 1>,
     #<ActsAsTaggableOn::Tag id: 3, name: "hefty", taggings_count: 1>]
    

    Taggings_coungs 是应用的标签数量。

    【讨论】:

    • 这将计算有多少用户被标记了某个标签,比如“真棒”。我想做 some.tag_list = "awesome, awesome" 并计算某人被标记为“awesome”的次数。
    • 您在谈论 User.tag_counts_on(:tags) - 这将计算标签云。但我已经向您展示了您可以计算每个用户的标签。开箱即用的功能
    • 感谢您的帮助,但是,我认为我没有很清楚地表达我想要什么。我会更新问题。
    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多