2011-03-19 66 views
0

我有一個名爲items的表。我想爲9個對象更改description屬性(它是一個文本屬性)。具體而言,這些對象是Item的子類 - 稱爲Juice。所以項目表是STI。以下是該項目的示例說明:嘗試使用gsub更改屬性時出現遷移問題

將所有支出提高20%

現在,當我嘗試運行以下遷移時,無法獲取dang描述來更新。有任何想法嗎? (Rails的版本是2.3.11。)

class ModifyItemJuiceDescription < ActiveRecord::Migration 

    def self.up 
    juices = Juice.all 

    Juice.transaction do 
     for j in juices do 
     puts "Juice description is: #{j.description}." 
     j.description.gsub!('payouts', 'winnings') 
     puts "Juice description will be saved as: #{j.description}." 
     j.save! 
     puts "Juice description is now: #{j.description}." 
     puts "======================================================" 
     end 
    end 

    end 

    def self.down 
    juices = Juice.all 

    Juice.transaction do 
     for j in juices do 
     puts "Juice description is: #{j.description}." 
     j.description.gsub!('winnings', 'payouts') 
     puts "Juice description will be saved as: #{j.description}." 
     j.save! 
     puts "Juice description is now: #{j.description}." 
     puts "======================================================" 
     end 
    end 

    end 

end 

回答

0

我有一種預感,j.description返回字符串,而不是實際的結構映射到數據庫的副本; gsub!調用改變了錯誤的對象。

嘗試j.description = j.description.gsub(...)

+0

那就是它!你搖滾 – keruilin 2011-03-19 15:07:38

相關問題