2014-11-07 2 views
0

Мне нужно создать миграцию, которая создает таблицу с именем creditcardquotas, но рельсы генерируют таблицу с именем credit_card_quota точно так же, как имя модели.Метод pluralize кажется неработоспособным

Я попытался с помощью метода множественного числа

helper.pluralize (2, 'Квоты') => "2 Квоты"

class CreateCreditCardQuota < ActiveRecord::Migration 
     def change 
     create_table :credit_card_quota do |t| 
      t.integer :credit_card_id 
      t.integer :quotes 
      t.integer :interest 
      t.timestamps 
     end 
     end 
    end 

Как сказать миграции Rails, что я хочу, чтобы таблица credit_card_quotas?

+0

Почему не следует использовать 'create_table: credit_card_quotas do | t |' после того, как миграция была сгенерирована до ее применения. –

+0

Модель полагает, что таблица называется CreditCardQuota CreditCardQuota.all ActiveRecord :: StatementInvalid: Не удалось найти таблицу 'credit_card_quota' –

+0

Так оно и есть в рельсах. Если вы хотите по-другому, добавьте перегиб для плюрализации. Я отправлю псевдо-ответ, чтобы помочь вам. –

ответ

1

Создать файл в config/initializers/. Назовите этот файл inflections.rb и добавьте это содержимое в него.

Перед добавлением вы получите:

helper.pluralize(2, 'quota') 
=> "2 quota" 

Добавить перегиб:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.plural 'quota', 'quotas' 
end 

После этого:

helper.pluralize(2, 'quota') 
=> "2 quotas" 

Вы можете добавить любой вид действительных или недействительных множественного числа в этом файл ...

Запустите миграцию после применения этого изменения конфигурации.

+0

Спасибо Ruby Racer –

Смежные вопросы