0

我已经实现了acts_as_taggable_on gem,我可以在数据库标签表上看到我有哪些标签。

我正在标记模型卡,当我这样做时Card.tag_counts

我得到的只是

 [#<ActsAsTaggableOn::Tag id: 1, name: "test4">, #<ActsAsTaggableOn::Tag id: 2, name: "you">, #<ActsAsTaggableOn::Tag id: 3, name: "test">, #<ActsAsTaggableOn::Tag id: 4, name: "tyy">, #<ActsAsTaggableOn::Tag id: 5, name: "tetes">]

即使我有一些标签相同的卡片

我已经通过以下方式验证了这一点 Card.all.map{|c| c.tags}

并得到

[#<ActsAsTaggableOn::Tag id: 1, name: "test4">], [#<ActsAsTaggableOn::Tag id: 2, name: "you">,  #ActsAsTaggableOn::Tag id: 1, name: "test4">], [#<ActsAsTaggableOn::Tag id: 3, name: "test">,  #ActsAsTaggableOn::Tag id: 2, name: "you">], [#<ActsAsTaggableOn::Tag id: 4, name: "tyy">], [#ActsAsTaggableOn::Tag id: 5, name: "tetes">], [#<ActsAsTaggableOn::Tag id: 2, name: "you">], [#ActsAsTaggableOn::Tag id: 2, name: "you">], [#<ActsAsTaggableOn::Tag id: 2, name: "you">]]

很明显,我有不止一次卡片的标签。

为什么不Card.tag_counts向我显示计数,如果不是这样,我如何获得 tag_count?

4

2 回答 2

1

您需要实际调用.count返回的 Tag 对象。

ActsAsTaggableOn 使用自定义选择来返回计数,当这样做时,所选值(在本例中为计数)是可访问的,但不会出现在检查中。

于 2012-10-23T16:35:15.687 回答
0

根据https://github.com/mbleigh/acts-as-taggable-on/issues/185

为了获得所有标签计数,您必须执行类似的操作

Card.tag_count.map{|x| [x.name,x.count]}

这很丑陋...

于 2012-10-23T16:34:08.117 回答