【发布时间】:2016-08-07 11:19:39
【问题描述】:
我的一个模型表(事件)没有显示在 schema.rb 文件中,而在它的位置有这条消息 -
# Could not dump table "events" because of following NoMethodError
# undefined method `[]' for nil:NilClass
最后一次迁移成功如下-
class RemoveOrganiserDescriptionFromEvents < ActiveRecord::Migration
def change
remove_column :events, :organiser_description, :text
end
end
改成这个了-
class AddOrganiserProfileToEvents < ActiveRecord::Migration
def change
add_column :events, :organiser_profile, :url
end
end
我很确定它已经“古怪”了,因为属性不应该是 url,而应该是字符串。但是,当我尝试执行其他迁移时,它不起作用。当我尝试执行 rake db:migrate -
时,我的终端中出现以下错误未定义的方法to_sym' for nil:NilClass
Did you mean? to_s/Users/Michael/MWCoding/MamaKnows/mama_knows/db/migrate/20160415123947_remove_events_organiser_profile.rb:3:inchange'
NoMethodError:nil:NilClass 的未定义方法“to_sym”
你的意思是? to_s
在我的迁移文件中,这是我的代码 -
def change
change_column :events, :organiser_profile :string
end
def up
change_column :events, :organiser_profile, :string
end
def down
change_column :events, :organiser_profile, :url
end
我还尝试完全删除该列,然后尝试将其替换为正确的版本,但无济于事。我们将不胜感激所有即将到来的帮助。
【问题讨论】:
-
remove_column :events, :organiser_description- RemoveOrganiserDescriptionFromEvents 应该如下所示。尝试改变这个 -
迁移中为什么会有变化,上下波动?
-
我在之前的 SO Q&A 上看到过。
-
以上方法我都试过了,还是不行。
-
@Mike.Whitehead 不确定您要在这里实现什么。如果您已运行迁移 AddOrganiserProfileToEvents,它将不会运行,因为
url不是数据类型。
标签: ruby-on-rails schema rake database-migration