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
就像您可以做任何特别复杂的事情一样,只是尝试通过更改数据库中已有的名称列的大小写来添加新的列标题。但我尝试调用私有(private)方法时出错。我猜这与“ self ”有关?
感谢您的帮助。
最佳答案
由于您要添加列,因此您需要重置 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
关于mysql - 尝试更改迁移文件中数据库条目的更改大小写时出现“尝试调用私有(private)方法”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703229/