ruby-on-rails – Rails:在所有测试中获取“表事件没有名为user
我所有的测试都给出了错误.我尝试排序好一段时间,但无济于事.它们类似于以下内容:
30) Error: UserTest#test_a_user_should_enter_a_first_name: ActiveRecord::StatementInvalid: SQLite3::SQLException: table events has no column named user_id: INSERT INTO "ev ents" ("text","event_start","user_id","created_at","updated_at","id") VALUES ('MyText','2012-08-10',20790 7133,'2014-04-02 03:43:47',980190962) 31) Error: UserTest#test_a_user_should_enter_a_last_name: ActiveRecord::StatementInvalid: SQLite3::SQLException: table events has no column named user_id: INSERT INTO "ev ents" ("text",980190962) 32) Error: UserTest#test_a_user_should_have_a_profile_name_without_spaces: ActiveRecord::StatementInvalid: SQLite3::SQLException: table events has no column named user_id: INSERT INTO "ev ents" ("text",980190962) 我应该提到应用程序本身工作得非常好.各种各样的东西取决于user_id属性,并且它们运行. 至于测试,我环顾四周,发现提到检查你的灯具文件!每当我重命名列时,我通常会忘记调整我的灯具来匹配.这会导致每次测试都出错,就像你看到的一样. Error in all unit and functional tests after altering column names of a table不确定这是否适用于我的问题.如您所见,它表示事件已经有一个user_id.我不太了解所有测试都失败了,即使是看似无关的测试.这就是让我失望的原因. 我的GitHub部分:https://github.com/attatae/and_silva 还看了这个:Rails 3.0.7 with ruby 1.9.2 fixtures with :belongs_to and :has_many gives “table users has no column named posts” 我是否需要将user_id插入xxyynum_create_events.rb? 我试过的其他事情: 所有帮助非常感谢. 更新=============== 发布后,我将[bignum] _create_events.rb改为: class CreateEvents < ActiveRecord::Migration def change create_table :events do |t| t.string :title t.datetime :time_begin t.string :location t.date :event_start t.text :text t.integer :user_id t.text :user t.timestamps end end end 然后我尝试使用bundle exec rake db:reset&&捆绑exec rake db:populate&& bundle exec rake db:test:prepare但是收到错误“”不知道如何构建任务’db:populate’. 所以我尝试了捆绑exec rake db:drop&&捆绑exec rake db:create&&捆绑exec rake db:migrate&&捆绑exec db:test:准备,但它说 接下来我进入开发并测试沙箱,他们都说事件(表不存在). 然后我尝试运行rails只是为了确保我甚至试图修复正确的程序,因为我的应用程序之前运行得很好,显然在事件中没有user_id方面. 该网站称迁移正在等待中;运行’rake db:migrate RAILS_ENV = development’来解决此问题.我尝试运行rake db:migrate.然后它说: == AddAddressToEvent: migrating ============================================== -- add_column(:events,:address,:string) rake aborted! An error has occurred,this and all later migrations canceled: SQLite3::SQLException: no such table: events: ALTER TABLE "events" ADD "address" varchar(255)C:/Rails Projects/Git pull/and_silva/db/migrate/20140329045140_add_address_to_event.rb:3:in *change' C:in `migrate' Tasks: TOP => db:migrate 然后我跑了rake并得到了与之前32次测试相同的错误. 我运行了rake db:migrate RAILS_ENV = development,然后得到了相同的AQLite3 […] ALTER TABLE错误. 解决方法
检查灯具并查看它们是否与您的架构不匹配.
我遇到了类似的问题.我的灯具有一个旧值,即使我从我的数据库中删除它.因此,Rails测试正在加载灯具,它们与我更新的数据库不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |