Я работаю над устаревшим проектом, который использует 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?)
I year_tags ДЕЙСТВИТЕЛЬНО имеет метод push
, но ему нужен объект ActsAsTaggableOn
, а не строка... что кажется странным.
Расчетное время прибытия:
немного подробнее, потратив больше времени на это:
Похоже, что типичный способ использования ActsAsTaggableOn
состоит в том, чтобы иметь один список тегов, однако у нас есть несколько различных типов тегов, поэтому у нас есть report.year_tags
, report.level_tags
и т. д. Каждый из них выглядит, может быть, итератором? в списке ActsAsTaggableOn::Tag
объектов? или что-то подобное?