Ошибка «Попытка вызова частного метода» при попытке изменить регистр изменений базы данных в файле миграции - PullRequest
0 голосов
/ 24 апреля 2010
class AddTitleToPosts < ActiveRecord::Migration
 def self.up
add_column :posts, :title, :string
    Post.find(:all).each do |post|
     post.update(:title => post.name.upcase)
    end
 end

 def self.down
 end

end

Как вы можете ничего особенно сложного, просто пытаясь добавить новый заголовок столбца, изменив регистр имени столбца уже в БД Но я получаю попытку вызвать закрытый метод ошибки. Я предполагаю, что это как-то связано с «я»?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 24 апреля 2010

Поскольку вы добавляете столбец, вам необходимо сбросить информацию ActiveRecord о вашей модели. В разделе Использование модели после изменения ее таблицы в ActiveRecord :: Migration показан пример. Это может работать для вас

class AddTitleToPosts < ActiveRecord::Migration
  def self.up
    add_column :posts, :title, :string

    Post.reset_column_information

    Post.find(:all).each do |post|
      post.update(:title => post.name.upcase)
    end
  end

  def self.down
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...