1

Railsアプリに属性「title」があり、データベース内のすべてのインスタンスを変更したいと思います。たとえば、「title」は「applepie」から「applecake」になります。私がたくさん持っているので、それぞれを個別に調べて変更する以外に、これを行う方法はありますか?

4

1 に答える 1

3

変更を行うためにレーキタスクを作成できます。

namespace :update do

  desc "Update title"
  task :title_fix => :environment do
    MyClass.where(:title => 'old title').each do |t|
      t.update_attributes(title: 'new title')
    end
  end
end

次に、コマンドラインで次のコマンドを実行します。

rake update:fix_title

または、勇気がある場合は、次のようにすべてをRailsコンソールで実行できます。

MyClass.where(:title => 'old title').each { |t| t.update_attributes(title: 'new title') }

しかし、文書化されていない方法でデータベースを変更するのは嫌いです...

于 2013-02-27T02:13:09.327 に答える