我需要生成一个创建名为creditcardquotas
的表的迁移,但rails生成一个名为credit_card_quota
的表,与模型的名称完全相同。
我尝试使用复数方法
helper.pluralize(2,'quota') => “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 :(得分: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"
您可以在此文件中添加任何类型的有效或无效复数...
应用此配置更改后运行迁移。
答案 1 :(得分:0)
根据我最近的经验,似乎Rails / Active Record不知道如何对单词“ quota”进行复数,或者认为单词“ quota”的复数是“ quota”。我只是尝试为与“
Quota(Table doesn't exist)
但是当我将我的 Quota 类更新为 Quotas 并重命名了文件时,我能够使用数据库中的配额表。我最终的解决方案是将数据库表名称从 quotas 更改为 quota ,并为模型使用 Quota 类。