Rails使用多个表名,即使我告诉它使用单数

时间:2011-01-14 16:17:40

标签: ruby-on-rails database

我试图运行rake test:profile,我收到了这个错误:

... Table 'mcif2.accounts' doesn't exist: DELETE FROM `accounts`

我知道accounts不存在。它被称为account

我知道Rails默认使用多个表名,但这是config/environment.rb的样子:

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
McifRails::Application.initialize!

ActiveRecord::Base.pluralize_table_names = false

这就是db/schema.rb的样子:

ActiveRecord::Schema.define(:version => 0) do

  create_table "account", :force => true do |t|
    t.integer   "customer_id",              :limit => 8,                                         :null => false
    t.string    "account_number",                                                                :null => false
    t.integer   "account_type_id",          :limit => 8
    t.date      "open_date",                                                                     :null => false

所以我不明白为什么Rails有时候还想把它称为accounts。有什么想法吗?

如果它有助于提供任何线索,heregrep -ir 'accounts' *的结果。

2 个答案:

答案 0 :(得分:1)

我的猜测是你已经在一个性能测试中命名了你的夹具accounts.yml或使用了指令fixtures :accounts。 Rails使用fixture名称填充相关表,而不了解模型。

答案 1 :(得分:0)

尝试在模型中设置

set_table_name "account"