ActsAsTaggableOn добавить тег к объекту - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над унаследованным проектом, который использует ActsAsTaggableOn, но выглядит (основываясь на документации), что он не использует его нормально?

мой объект отчетов имеет несколько объектов 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?)

I year_tags У ДОЛЖЕН быть метод push, но для этого нужен объект ActsAsTaggableOn, а не строка ... что кажется странным.

ETA:

немного больше деталей, потратив больше времени на это:

Похоже, что типичный способ использования ActsAsTaggableOn состоит в том, чтобы иметь один tag_list однако у нас есть несколько различных типов тегов, поэтому у нас есть report.year_tags и report.level_tags, et c ... Каждый из них выглядит, может быть, итератором? в списке ActsAsTaggableOn::Tag объектов? или что-то типа того?

1 Ответ

1 голос
/ 30 апреля 2020

вы можете использовать act_as_taggable_on, например, acts_as_taggable_on :year_tags, тогда вы сможете year_tags_list.add "tag" см. Исходный код в качестве ссылки

...