Rails, использующие имена таблиц во множественном числе, хотя я сказал использовать единственное число - PullRequest
3 голосов
/ 14 января 2011

Я попытался запустить 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 иногда. Есть идеи?

Если это поможет дать какие-либо подсказки, здесь - результаты grep -ir 'accounts' *.

Ответы [ 2 ]

1 голос
/ 14 января 2011

Я предполагаю, что вы назвали свой прибор accounts.yml или использовали директиву fixtures :accounts в одном из тестов производительности.Рельсы заполняют связанную таблицу, используя имя прибора без знания модели.

0 голосов
/ 14 января 2011

Попробуйте установить в своей модели

set_table_name "account"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...