所以我的数据库中有表项。
我想在Item.name中替换-
末尾的Item.name
字符
所以我试着这样做:
items = Item.all
items.each do |it|
it.name=it.name.gsub('/\-$/','')
it.save
end
但它不起作用。我该怎么办?
UPD: 我设法做到了这样:
i = Item.all
i.each do |it|
it.name=it.name.chomp('-')
it.save
end
但仍然不明白为什么第一个变种不起作用
答案 0 :(得分:0)
尝试下面的一个,它肯定会为你工作。
items = Item.all
items.each do |item|
item.name = item.name.gsub('-','')
it.save
end
答案 1 :(得分:0)
你应该使用:
items = Item.all
items.each do |it|
if name.end_with? '-'
it.name=it.name[0..-2]
else
it.name=it.name
end
it.save
end
或者你应该使用这个
items = Item.all
items.each do |it|
it.name=it.name.chomp('-')
it.save
end
答案 2 :(得分:0)
看一下这个答案:Ruby, remove last N characters from a string?
因此您只需使用chomp
方法:
在你的例子中:
items = Item.all
items.each do |it|
it.name=it.name.chomp
it.save
end
答案 3 :(得分:0)
您可以尝试使用ruby的sub!
功能。
实施例。
it.name.sub(" - """)!
!
表示为Bang方法,因此您无需再次将其存储在item
对象上。