ActsAsTaggableOn 添加标签到对象
ActsAsTaggableOn add tag to object
我正在处理一个使用 ActsAsTaggableOn 的遗留项目,但它看起来(根据文档)没有正常使用它?
我的 Reports 对象有几个 ActsAsTaggableOn 对象,例如 year_tags。
我正在尝试添加标签,基于:https://rubydoc.info/gems/acts-as-taggable-on/#usage 我应该可以使用:
report.year_tags.add("foo")
但是,这表示:
NoMethodError: undefined method `add' for #<ActsAsTaggableOn::Tag::ActiveRecord_Associations_CollectionProxy:0x00007fbedb9134e8>
我可以列出 year_tags
并获取长度,当我输出它们时,我得到预期的字符串(每行打印一个,但也许这对 Ruby 来说是正常的?)
我 year_tags 确实有一个 push
方法但是它需要一个 ActsAsTaggableOn
对象,而不是一个字符串...这看起来很奇怪。
预计到达时间:
更详细一点,花了更多时间看这个:
似乎使用 ActsAsTaggableOn
的典型方式是使用单个 tag_list,但是,我们有几种不同类型的标签,因此我们有 report.year_tags
,并且 report.level_tags
, 等等...每个似乎都是一个迭代器?在 ActsAsTaggableOn::Tag
个对象的列表中?或类似的东西?
你可以使用 acts_as_taggable_on
例如acts_as_taggable_on :year_tags
那么你就可以做到 year_tags_list.add "tag"
see source code as reference
我正在处理一个使用 ActsAsTaggableOn 的遗留项目,但它看起来(根据文档)没有正常使用它?
我的 Reports 对象有几个 ActsAsTaggableOn 对象,例如 year_tags。
我正在尝试添加标签,基于:https://rubydoc.info/gems/acts-as-taggable-on/#usage 我应该可以使用:
report.year_tags.add("foo")
但是,这表示:
NoMethodError: undefined method `add' for #<ActsAsTaggableOn::Tag::ActiveRecord_Associations_CollectionProxy:0x00007fbedb9134e8>
我可以列出 year_tags
并获取长度,当我输出它们时,我得到预期的字符串(每行打印一个,但也许这对 Ruby 来说是正常的?)
我 year_tags 确实有一个 push
方法但是它需要一个 ActsAsTaggableOn
对象,而不是一个字符串...这看起来很奇怪。
预计到达时间:
更详细一点,花了更多时间看这个:
似乎使用 ActsAsTaggableOn
的典型方式是使用单个 tag_list,但是,我们有几种不同类型的标签,因此我们有 report.year_tags
,并且 report.level_tags
, 等等...每个似乎都是一个迭代器?在 ActsAsTaggableOn::Tag
个对象的列表中?或类似的东西?
你可以使用 acts_as_taggable_on
例如acts_as_taggable_on :year_tags
那么你就可以做到 year_tags_list.add "tag"
see source code as reference