2010-04-24 2 views
0
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 

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

Благодарим за помощь.

ответ

1

Поскольку вы добавляете столбец, вам необходимо сбросить информацию 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 
+0

Это сработало отлично. благодаря –

Смежные вопросы