downcase删除重复的轨道保存数据库(downcase remove duplicates rails save database)

编程入门 行业动态 更新时间:2024-10-26 14:31:58
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:NilClass

I'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! end

Error

NoMethodError: undefined method `uniq!' for nil:NilClass

Also tried with pluck

tag_name = Tag.pluck(:name) tag_name.each do |tag| name = tag.downcase! name.uniq! end

Error

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 end

Used 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

更多推荐

本文发布于:2023-08-01 21:27:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1365047.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:轨道   数据库   remove   downcase   save

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!