В импортере данных у меня есть код, который пытается добавить кучу объектов ActsAsTaggableOn::Tag
в список тегов taggable:
existing_item = FeedItem.where(url: item[:url]).first
if existing_item.nil?
new_item = FeedItem.new
new_item.attributes = item.except(:id, :feeds)
new_item.feeds = Feed.where(id: feeds_old_to_new(item_feeds, feeds))
new_item.tag_list.add(
ActsAsTaggableOn::Tag.where(id: tags_old_to_new(item[:tags], tags)))
new_item.save!
else
# ... merge imported record with existing item ...
end
Это не работает, потому что tag_list.add
принимает список имен тегов, а не тегов. Есть ли способ добавить объекты тегов? Я не могу найти что-либо в документации, подобной тегам, и его код слишком мал для меня, чтобы понять (например, Tag::concat
, похоже, не мутирует себя!)
Я мог бы сопоставить теги с их именами, но тогда action-as-taggable-on будет запускать канонизацию имени, которая подходит для ввода пользователя, но не для массового импорта данных, поэтому я не хочу этого делать.