Ruby on rails 尝试使用gsub更改属性时出现迁移问题

Ruby on rails 尝试使用gsub更改属性时出现迁移问题,ruby-on-rails,migration,gsub,sti,Ruby On Rails,Migration,Gsub,Sti,我有一张叫做items的桌子。我想更改其中9个对象的描述属性(它是文本属性)。具体来说,这些对象是Item的一个子类,称为Juice。所以items表是STI。以下是该项目的示例说明: 将所有支出提高20% 现在,当我尝试运行以下迁移时,无法更新dang描述。有什么想法吗?(Rails版本为2.3.11。) class ModifyItemJuiceDescription

我有一张叫做items的桌子。我想更改其中9个对象的描述属性(它是文本属性)。具体来说,这些对象是Item的一个子类,称为Juice。所以items表是STI。以下是该项目的示例说明:

将所有支出提高20%

现在,当我尝试运行以下迁移时,无法更新dang描述。有什么想法吗?(Rails版本为2.3.11。)

class ModifyItemJuiceDescription
我有一种预感,
j.description
返回字符串的副本,而不是映射到数据库的实际结构;gsub!调用更改错误的对象

尝试
j.description=j.description.gsub(…)

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