Rails - 更改了表名,现在测试不会运行

时间:2012-02-27 02:44:04

标签: ruby-on-rails-3 unit-testing testing

使用Rails 3,我在模型中更改了表格的名称,如下所示:

# app/models/product.rb
class Product < ActiveRecord::Base
  set_table_name "items"
end

但是当我尝试设置测试时,我收到以下错误:

Started
E
Finished in 0.027396 seconds.

  1) Error:
test_the_truth(CustomerTest):
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'project2_test.products' doesn't exist: DELETE FROM `products`


1 tests, 0 assertions, 0 failures, 1 errors

知道我怎么能让它知道产品吗?

2 个答案:

答案 0 :(得分:1)

确定在这里找到答案:

http://www.missiondata.com/blog/systems-integration/80/rails-fixtures-with-models-using-set_table_name/

必须将Fixture yml文件的名称从Products更改为Items。

答案 1 :(得分:0)

不应直接改变类,而应create a migration。这将允许Rails顺利更改数据库,并允许任何其他在项目上工作的人以相同的方式更改其数据库。

编写使用change的{​​{1}}方法。

rename_table