我試圖對象的數組內解決特定領域:如何使用Array.each修改對象數組內對象的內容(字符串)?
@results.each do |result|
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
clean_name = ic.iconv(result.name + ' ')[0..-2]
result.name = clean_name
if clean_name != result.name
puts "Name: #{result.name} \ncleaned: #{clean_name}"
end
end
而服務器輸出:
Name: Free Pretzel Day @ Auntie Anne?s
cleaned: Free Pretzel Day @ Auntie Annes
這從得到錯誤「無效字節順序UTF-8」朵朵,所以我找到了iconv代碼來解決這個問題。在這種情況下,我有一個對象數組,我試圖清理result.name
字段。但是,當我遍歷它並將其保存爲「result.name = clean_name
」時,它實際上並沒有修改對象字段result.name
。
嗯,我還一直沒能解決這個問題,但它似乎是迴避的事實,結果對象是從rMeetup Gem中拉出來的,似乎我無法修改這些對象。我檢查了它們是否通過凍結是不可變的?但是這返回false,所以我不明白爲什麼我不能修改這個對象的字段。我直接在視圖中處理utf8問題並直接顯示「clean_name」來解決這個問題,所以我不需要存儲它。 – 2012-03-01 18:30:42