downcase删除重复的轨道保存数据库(downcase remove duplicates rails save database)
我试图做一个简单的downcase并删除rails中的重复项。 还保存到数据库。
Tag.all.each do |tag| tag_name = tag.name.downcase! tag_name.uniq! tag.save! end错误
NoMethodError: undefined method `uniq!' for nil:NilClass也试着采摘
tag_name = Tag.pluck(:name) tag_name.each do |tag| name = tag.downcase! name.uniq! end错误
NoMethodError: undefined method `uniq!' for nil:NilClassI'm trying to do a simple downcase and remove duplicates in rails. Also save to the database.
Tag.all.each do |tag| tag_name = tag.name.downcase! tag_name.uniq! tag.save! endError
NoMethodError: undefined method `uniq!' for nil:NilClassAlso tried with pluck
tag_name = Tag.pluck(:name) tag_name.each do |tag| name = tag.downcase! name.uniq! endError
NoMethodError: undefined method `uniq!' for nil:NilClass最满意答案
使用group_by查找过滤器查询。
found_tags = Tag.all.group_by { |tag| tag.name.downcase } found_tags.each do |key, val| if found_tags[key].count > 1 tag_to_keep = val.shift val.each do |t| t.taggings.update_all(tag_id: tag_to_keep.id) t.destroy! end tag_to_keep.update(name: tag_to_keep.name.downcase) end endUsed group_by to find filter query.
found_tags = Tag.all.group_by { |tag| tag.name.downcase } found_tags.each do |key, val| if found_tags[key].count > 1 tag_to_keep = val.shift val.each do |t| t.taggings.update_all(tag_id: tag_to_keep.id) t.destroy! end tag_to_keep.update(name: tag_to_keep.name.downcase) end end更多推荐
发布评论