J'ai les données suivantes:Comment créer et utiliser une table de jonction dans Rails?
- Un poste appelé
Hello
a catégoriesgreet
- Un autre poste appelé
Hola
a catégoriesgreet, international
Mon schéma est:
create_table "posts", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "categories", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "posts_categories", :force => true do |t|
t.integer "post_id"
t.integer "category_id"
t.datetime "created_at"
t.datetime "updated_at"
end
Après la lecture le guide Rails, la relation la plus appropriée f ou ce qui précède semble être:
class Post < ActiveRecord::Base
has_and_belongs_to_many :categories
end
class Category < ActiveRecord::Base
has_and_belongs_to_many :posts
end
Ma table de jonction semble également avoir une clé primaire. Je pense que je dois m'en débarrasser.
- Quelle est la commande de migration initiale pour générer une table de jonction dans Rails?
- Quel est le meilleur plan d'action, devrais-je supprimer
posts_categories
et le recréer ou simplement supprimer la colonne de la clé primaire? - La table de jonction a-t-elle un modèle correspondant? J'ai utilisé
scaffold
pour générer le code de la table de jonction, devrais-je me débarrasser du code supplémentaire?
En supposant que tout ce qui précède a été corrigé et fonctionne correctement, comment puis-je interroger tous les messages et les afficher avec leurs catégories nommées dans la vue. Par exemple:
Post #1 - hello, categories: greet
Post #2 - hola, categories: greet, international