gpt4 book ai didi

ruby-on-rails - Rails 迁移不适用于 heroku,模型类报告为未初始化的常量

转载 作者:行者123 更新时间:2023-12-04 22:49:22 25 4
gpt4 key购买 nike

我正在尝试在 heroku 上运行迁移,但似乎找不到为什么我的模型类无法识别的问题。

这是我的迁移:

class AddTestToGoals < ActiveRecord::Migration
def change
add_column :goals, :test, :integer, default: 0, null: false
Goal.reset_column_information
Goal.all.each { |g| g.update_attribute :test, Goal::PASS }
end
end

运行它使用
heroku run rake db:migrate

我收到这个错误
uninitialized constant AddTestToGoals::Goal

有谁知道问题是什么?

编辑:之前输入的错误,是无法识别的模型,而不是其中的常量。

一半的解决方法:

使用这个(我在这里找到: http://visibletrap.blogspot.co.il/2011/10/heroku-access-railss-model-in-migration.html )
class AddTestToGoals < ActiveRecord::Migration
class Goal < ActiveRecord::Base; end
def change
add_column :goals, :test, :integer, default: 0, null: false
Goal.reset_column_information
Goal.all.each { |g| g.update_attribute :test, Goal::PASS }
end
end

heroku 不会提示不知道解决了一半问题的目标是什么。
但是,无法识别 Goal::PASS。

最佳答案

老问题,但我最近遇到了类似的事情,这是由于通过设置禁用了自动加载

config.threadsafe!

在我的环境/staging.rb 文件中。
可以通过将其替换为以下内容来修复
config.threadsafe! unless $rails_rake_task

这应该没问题,因为 rake 任务不需要是线程安全的。

关于ruby-on-rails - Rails 迁移不适用于 heroku,模型类报告为未初始化的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11353214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com