【发布时间】:2016-08-07 22:12:33
【问题描述】:
我正在尝试更改我的 Rails 应用程序数据库中的表,但遇到以下问题 -
rake 中止! StandardError:发生错误,此迁移和所有后续迁移已取消:
未定义的方法to_sym' for nil:NilClass
Did you mean? to_s/Users/Michael/MWCoding/MamaKnows/mama_knows/db/migrate/20160415190242_remove_organiser_description_from_events.rb:3:inchange'
NoMethodError:nil:NilClass 的未定义方法“to_sym”
你的意思是? to_s
我已经尝试回滚和迁移:重做,但我什么也没得到,我担心我现在别无选择,只能做一个下降。我相信这个错误是在我使用了不正确的列类型的早期迁移之后发生的。
我该如何从这里继续前进?我对 Rails 还很陌生,之前从未完成过数据库删除,所以对过程有点不确定。任何帮助将不胜感激。
来自错误代码的上次迁移的代码 -
class RemoveOrganiserDescriptionFromEvents < ActiveRecord::Migration
def change
remove_column :events, :organiser_description, :text
end
end
事件表 -
class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :title
t.string :location
t.date :date
t.time :time
t.text :description
t.string :organised_by
t.text :organiser_description
t.timestamps null: false
end
end
end
事件表没有显示在 schema.rb 文件中,在它的位置我有以下文本 -
# Could not dump table "events" because of following NoMethodError
# undefined method `[]' for nil:NilClass
从 SQLite,运行 PRAGMA table_info(events);
0|id|INTEGER|1||1
1|title|varchar|0||0
2|location|varchar|0||0
3|date|date|0||0
4|time|time|0||0
5|description|text|0||0
6|organised_by|varchar|0||0
7|created_at|datetime|1||0
8|updated_at|datetime|1||0
9|user_id|integer|0||0
10|image_file_name|varchar|0||0
11|image_content_type|varchar|0||0
12|image_file_size|integer|0||0
13|image_updated_at|datetime|0||0
14|category_id|integer|0||0
15|url|varchar|0||0
16|number_of_spaces|integer|0||0
17|price|integer|0||0
18|is_free|boolean|0||0
19|organiser_profile|url|0||0
【问题讨论】:
-
请发布迁移代码。
-
你的意思是跟踪吗?
-
我的意思是这次迁移中的代码:
mama_knows/db/migrate/20160415190242_remove_organiser_description_from_events.rb -
类 RemoveOrganiserDescriptionFromEvents
-
这不是很好 - 我已经在上面的问题中添加了它。
标签: mysql ruby-on-rails ruby sqlite