2017-02-15 6 views
1

コマンドrails gモデルModelNameがテーブルを作成するための移行を生成するので、テーブルの名前を正しく見せたいと思う。私のモデルの名前はCategoryProductであり、その複数形のバージョンはCategoriesProductでなければなりません。モデル名が正しく表示されます。私はモデルを生成するためのコマンドを実行したときにでも移行は、次のように来る:2ワードの正しい方法でテーブル名を呼び出す

class CreateCategoryProducts < ActiveRecord::Migration[5.0] 
    def change 
    create_table :category_products do |t| 

     t.timestamps 
    end 
    end 
end 

は、私はすでに作っ補正にファイル初期化子/ inflections.rbを変更:だから

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'categoryproduct', 'categoriesproduct' 
end 

、なぜそれをありますまだアンダースコアで間違った名前を生成していますか?

+0

これは、移行を生成するための標準的な方法です。なぜそれを変更したいのですか?私はあなたの質問に答えがありませんが、私はコンベンションに固執し、Category_productsを使用することを提案します。どちらも意味をなさないでしょうか?または、カテゴリには1つの製品しかありませんか?関係について考える。なぜあなたは絶対にこの名前が必要なのですか? –

+1

両方の単語が複数形になる唯一のテーブルは、結合表 –

+1

です。モデル名は 'CategoryProduct'です。category_productsは表記規則に従って適切な表名です –

答えて

0

tablenameをcategoriesproductにする場合は、目的の名前のテーブルを作成し、モデルにtablenameを指定します。

class CategoryProduct < ActiveRecord::Base 
    self.table_name = "categoriesproduct" 
end 
+0

ええ@Ambika Sharma、私はそれを行うことができましたが、私はレールが私のために生成したものを使いたいと思っていました。しかし、私はcoreyのアドバイスに従うと思います。私は自分のプロジェクトを英語に適応しようとします。ありがとう。 – churros

関連する問題