ActsAsTaggableOn向对象添加标签。

问题描述 投票:0回答:1

我正在做一个使用ActsAsTaggableOn的遗留项目,但看起来(根据文档)它并没有正常使用它?

我的 Reports 对象有几个 ActsAsTaggableOn 对象,例如 year_tags。

我正试图添加一个标签,并基于。https:/rubydoc.infogemsacts-as-taggable-on#usage。 我应该可以直接使用.NET技术。

report.year_tags.add("foo")

然而,这说。

NoMethodError: undefined method `add' for #<ActsAsTaggableOn::Tag::ActiveRecord_Associations_CollectionProxy:0x00007fbedb9134e8>

我可以列出 year_tags 并得到长度,当我输出它们时,我得到了预期的字符串(每行打印一个,但也许这对Ruby来说是正常的?

I year_tags确实有一个 push 方法,但该方法想要一个 ActsAsTaggableOn 对象,而不是字符串......这看起来很奇怪。

ETA:

花了更多的时间来研究这个,又多了一点细节。

似乎典型的使用方式是 ActsAsTaggableOn 是有一个单一的tag_list,但是,我们有几种不同类型的标签,所以我们有了 report.year_tagsreport.level_tags等等... 每一个看起来都是一个,也许是迭代器?ActsAsTaggableOn::Tag 对象还是类似的东西?

ruby-on-rails ruby acts-as-taggable-on
1个回答
1
投票

你可以使用 acts_as_taggable_one.g。acts_as_taggable_on :year_tags然后你就可以做 year_tags_list.add "tag"参照源码

© www.soinside.com 2019 - 2024. All rights reserved.