gpt4 book ai didi

database - #由于遵循NoMethodError而无法转储表“预订”#nil:NilClass的未定义方法'[]'

转载 作者:行者123 更新时间:2023-12-03 19:44:20 26 4
gpt4 key购买 nike

我开始了一个新项目:

我只运行以下命令:

rails g model subscription


然后:

rails g controller subscriptions


然后:

已将 resources :subscriptions添加到我的路线

然后:

rake db:migrate


然后:

rails g migration add_column_to_subscriptions


具有以下内容:

class AddColumnsToSubscriptions < ActiveRecord::Migration

def change
add_column :subscriptions, :fname, :text
add_column :subscriptions, :lname, :text
add_column :subscriptions, :email, :email
end
end


然后:

rake db:migrate


在执行添加列迁移之前,我的架构中有一个订阅表。但现在在模式中,我有:

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


这里发生了什么?我发现的SO解决方案都没有对我有用,或者我不理解。

最佳答案

不知道此错误是否仍在为您发生,但是否为其他人发生。问题是您的数据库可能处于时髦状态,列类型错误,我猜是这种情况下的“电子邮件”。尝试将其更改为字符串,然后重新开始。

class AddColumnsToSubscriptions < ActiveRecord::Migration
def change
add_column :subscriptions, :fname, :string
add_column :subscriptions, :lname, :string
add_column :subscriptions, :email, :string
end
end


另外,我建议使用字符串作为名字和姓氏,因为它们可能永远不会超过256个字符。这将使您的数据库更有效率。它对我有用,所以也许可以帮助到那里的其他人。

关于database - #由于遵循NoMethodError而无法转储表“预订”#nil:NilClass的未定义方法'[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909018/

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