Mam tabelę o imieniu produktu_Categories. I chcę stworzyć samodzielnie. Jaki jest właściwy sposób, aby to zrobić za pomocą komendy generujące migracje? Zrobiłem to i nie działa: szyny G migracja AddProductCategoryToproductionCatePrzedsiębiorstwaKategorie: Referencje

0
churros 16 luty 2017, 22:06

1 odpowiedź

Ogólnie rzecz biorąc, nazwa tabeli może być dowolna, co chcesz. Czasami czasami znajduję konwencje Naming Rails trochę whacky.

Jeśli wygenerowałeś już modele / tabele produktów i produkty, po prostu wykonaj:

rails generate model product_categories_products product_id:integer product_category_id:integer

Spowoduje to wygenerowanie modelu, który przechowuje zarówno klucze obce, jak i działa jako tabela proxy.

Następnie trzeba skonfigurować model produktu z:

has_many product_categories_products
has_many product_categories, through: product_categories_products

Następnie zdefiniuj następujące czynności wCkategorii

has_many product_categories_products
has_many products, through: product_categories_products

I wreszcie w produktowym produkcie

belongs_to product
belongs_to product_category

Jednak powyższa konwencja nazewnictwa jest okropna. Lepiej byłbyś zmienić nazwy produktuKategorii do po prostu "kategorii", a następnie model tabeli proxy może być "ProductsCategory".

... Albo możesz zmienić na tym zupełnie inny, a następnie ręcznie określam nazwę klasy w definicjach stowarzyszenia.

-1
JayJay 16 luty 2017, 21:07