我试图更改我的Rails应用数据库中的表格,并且遇到以下问题 -
耙子流产了! 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:in
更改'
NoMethodError:未定义的方法`to_sym'为零:NilClass
你的意思是? 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
答案 0 :(得分:0)
在迁移文件上修复错误的属性organiser_profile,然后在命令行中执行drop database不是问题:
bundle exec rake db:drop db:create db:migrate