class Product < ActiveRecord::Base
attr_accessible :description, :name
has_many :categorizations
has_many :categories, :through => :categorizations
validates :name, uniqueness: true
end
category.rb
class Category < ActiveRecord::Base
attr_accessible :name
has_many :categorizations
has_many :products, :through => :categorizations
validates :name, uniqueness: true
end
categorization.rb
class Categorization < ActiveRecord::Base
attr_accessible :category_id, :product_id # Should I leave these accessible?
belongs_to :product
belongs_to :category
end
C'est ce que je suis en train dans le terminal:
> p1 = Product.create(name: "Product A", description: "Product A description")
> p1.categories
> []
> Category.all
> []
> p1.categories.create(:name => "Cat A")
> p1.categories.find(1).name
> ["Cat A"]
>
> p2 = Product.create(name: "Product B", description: "Product B description")
> p2.categories
> []
> p2.categories.update_attributes(:name => "Cat A")
je reçois une erreur de méthode non définie pour « update_attributes ».
- Comment attribuer un produit à une catégorie sans créer de catégorie en double dans la base de données? (Puisque "Cat A" est déjà créé ci-dessus, comment puis-je attribuer "p2" pour avoir cette même catégorie, tout en gardant un seul enregistrement de "Cat A" dans la base de données?)
- Lorsque je cherche un Lorsque je tape "p.categories.name", je récupère le nom du modèle "Category". Comment puis-je récupérer les noms de catégories dans un tableau?
- Quelle est la meilleure façon de l'implémenter dans un formulaire Web?