2016-06-28 6 views
0

私のデータベースにはテーブル項目があります。 Item.nameは、だから私はこのようにそれをやろうItem.name の末尾にある-文字を置き換えるには、私がしたい:文字列の最後にあるダッシュ文字を削除します

items = Item.all 
items.each do |it| 
it.name=it.name.gsub('/\-$/','') 
it.save 
end 

をしかし、それは動作しません。私は何をしますか?

UPD

: は、私はこのようにそれを行うために管理:第一の変形が

+0

なぜあなたは必要がないときに正規表現を使用しようとしますか? :) – Didi

答えて

0

が、それは間違いなくあなたのための1以下で動作します試してみてください動作しなかった理由を

i = Item.all 
i.each do |it| 
it.name=it.name.chomp('-') 
it.save 
end 

しかし、まだを得ることはありません。

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 
+0

これは、最後だけでなく、 'name'文字列のどこからでもダッシュを削除します。 – snowangel

0

chomp方法:

あなたの例では

items = Item.all 
items.each do |it| 
it.name=it.name.chomp 
it.save 
end 
+0

文字列の最後にある '--'文字を置き換える必要があります!あなたの関数はすべての '-'文字を置き換えます! –

+0

私のコードでいくつか変更を加えました – Sunny

0

はこの答えを見てください使用する必要があります:Ruby, remove last N characters from a string?

のであなただけ使用する必要がありますあなたが好き使用する必要があります

items = Item.all 
items.each do |item| 
item.name = item.name.gsub('-','') 
it.save 
end 
0

あなたはルビーのsub!機能を試すことができます。

Ex。

it.name.sub!( " - "、 "")あなたはitemオブジェクトに再び店にそれを必要としないので、

!は、バンの方法として表します。

関連する問題