gpt4 book ai didi

ruby-on-rails - Rails 4 : schema. db 显示 "Could not dump table "事件“因为以下 NoMethodError# 未定义方法 `[]' for nil:NilClass”

转载 作者:行者123 更新时间:2023-12-01 16:52:31 27 4
gpt4 key购买 nike

我一直在使用 sqlite(Rails 开发环境的默认值)开发一个用于事件(黑客马拉松)的 Rails 4.0 应用程序,该应用程序具有父模型 Event,其中可以有许多 Press_Blurbs。

首先,我运行了一些脚手架生成器,它们创建了一些迁移,我运行这些迁移似乎没有问题:

class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :city
t.string :theme
t.datetime :hackathon_start
t.datetime :hackathon_end
t.datetime :show_start
t.datetime :show_end
t.text :about
t.string :hack_rsvp_url
t.string :show_rsvp_url

t.timestamps
end
end
end

class CreatePressBlurbs < ActiveRecord::Migration
def change
create_table :press_blurbs do |t|
t.string :headline
t.string :source_name
t.string :source_url
t.string :logo_uri

t.timestamps
end
end
end

然后我向模型添加了一些关系:

class Event < ActiveRecord::Base
has_many :press_blurbs
end

class PressBlurb < ActiveRecord::Base
belongs_to :event
end

...并添加/运行迁移以添加表引用:

class AddEventRefToPressBlurbs < ActiveRecord::Migration
def change
add_column :press_blurbs, :event, :reference
end
end

尽管如此,当我查看 schema.db 时,我看到的是以下内容而不是表定义:

# Could not dump table "events" because of following NoMethodError
# undefined method `[]' for nil:NilClass

# Could not dump table "press_blurbs" because of following NoMethodError
# undefined method `[]' for nil:NilClass

其他不相关的表在 schema.rb 中显示得很好,但这些表却没有。知道发生了什么吗?

最佳答案

我认为您上次的迁移是错误的。我会把它改成这样:

class AddEventRefToPressBlurbs < ActiveRecord::Migration
def change
add_reference :press_blurb, :event
end
end

不幸的是,您的数据库可能处于不稳定状态,因为它具有无效的列类型(即没有“引用”列类型,但 sqlite 仍然做到了)。希望它只是一个开发数据库,​​这样您就可以删除它并重新开始。

关于ruby-on-rails - Rails 4 : schema. db 显示 "Could not dump table "事件“因为以下 NoMethodError# 未定义方法 `[]' for nil:NilClass”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17893326/

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