【发布时间】:2017-12-10 15:16:38
【问题描述】:
在数据导入器中,我的代码试图将一堆 ActsAsTaggableOn::Tag objects 添加到可标记的标签列表中:
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 需要一个标签列表names,而不是标签objects。有没有办法添加标签objects?我在acts-as-taggable-on 文档中找不到任何内容,而且它的代码太神奇了,我无法理解(例如,Tag::concat 似乎没有自我变异!)
我可以将标签映射到它们的名称,但作为可标记的操作会运行适合用户输入但不适用于批量数据导入的名称规范化,所以我不想这样做。
【问题讨论】:
标签: ruby-on-rails acts-as-taggable-on