model Shop ::产品展示shop_products。为什么?

时间:2016-11-22 11:25:58

标签: ruby-on-rails

我有以下型号 models / shop / product.rb

class Shop::Product
end

我生成了迁移

def change
    create_table :products do |t|
      # ...
      t.timestamps
    end
  end

我创建新产品并显示错误 UndefinedTable:错误:“shop_products”

1 个答案:

答案 0 :(得分:3)

  

model Shop ::产品查看表shop_products。为什么呢?

Because of Inflector

  

Inflector将单词从单数转换为复数, 类名   到表名 ,模块化类名到没有,和类   外键的名称。

按照Rails惯例,您应该将db表名称更改为shop_products

如果您希望使用与模型名称不同的名称,则应指定table_name

class Shop::Product
  self.table_name = :products
end