コマンド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
、なぜそれをありますまだアンダースコアで間違った名前を生成していますか?
これは、移行を生成するための標準的な方法です。なぜそれを変更したいのですか?私はあなたの質問に答えがありませんが、私はコンベンションに固執し、Category_productsを使用することを提案します。どちらも意味をなさないでしょうか?または、カテゴリには1つの製品しかありませんか?関係について考える。なぜあなたは絶対にこの名前が必要なのですか? –
両方の単語が複数形になる唯一のテーブルは、結合表 –
です。モデル名は 'CategoryProduct'です。category_productsは表記規則に従って適切な表名です –