Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku rake db:迁移失败-未初始化常量_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails Heroku rake db:迁移失败-未初始化常量

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

我的应用程序在本地运行良好,我推到Heroku成功。但是,当我运行heroku run rake db:migrate时,我得到以下错误:

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请接受最佳答案。