Ruby on rails Heroku rake db:迁移失败-未初始化常量
我的应用程序在本地运行良好,我推到Heroku成功。但是,当我运行heroku run rake db:migrate时,我得到以下错误:Ruby on rails Heroku rake db:迁移失败-未初始化常量,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我的应用程序在本地运行良好,我推到Heroku成功。但是,当我运行heroku run rake db:migrate时,我得到以下错误: NameError: uninitialized constant AddWeightToExercises 以下是失败的迁移: class AddWeightToExercise < ActiveRecord::Migration def change add_column :exercises, :weight, :float e
NameError: uninitialized constant AddWeightToExercises
以下是失败的迁移:
class AddWeightToExercise < ActiveRecord::Migration
def change
add_column :exercises, :weight, :float
end
end
class AddWeightToExercise
编辑:谢谢大家的帮助。解决方案是将类名复数化以匹配文件名。感谢您的帮助和快速回复。您的文件名使用“练习”的复数形式,但您的类名是
addweighttoexercise
单数形式。rails动态加载适当的类时,这两者需要保持一致。您的迁移文件的名称应该对应于AddWeightToExercises
。相应地,xxxxxxx\u add\u weight\u到\u练习
,其中xxxxxxx
对应一个特定的时间戳。如果重命名迁移,可能会发生这种情况。正如@ArslanAli所指出的,当文件和类的名称不匹配时,往往会发生这种情况。。。您迁移的文件名是什么?@craig.kaminsky文件名是20150621165611\u add\u weight\u to_exercises.rb,我应该更改文件名还是类名?应该是这样(因为类是AddWeightToExercise
)。我将更改类名而不是文件名,因为该文件名正确地使表复数化(练习)。@userFriendly请接受最佳答案。