J'ai une situation où j'ai Produits, Fournisseurs, ShoppingLists et Valorisations.Rails: De nombreux à plusieurs relations avec les 3 modèles
A shopping_list se composent de nombreuses évaluations chacune avec un produit, un fournisseur spécifique et un prix.
Mes modèles sont les suivants:
class Product < ActiveRecord::Base
has_many :valuations
has_many :shopping_lists, :through => :valuations
end
class Supplier < ActiveRecord::Base
has_many :valuations
has_many :shopping_lists, :through => :valuations
end
class ShoppingList < ActiveRecord::Base
has_many :valuations
has_many :products, :through => :valuations
has_many :suppliers, :through => :valuations
end
class Valuation < ActiveRecord::Base
belongs_to :product
belongs_to :supplier
belongs_to :shopping_list
end
Mon routes.rb est:
map.resources :shopping_lists do |shopping_list|
shopping_list.resources :valuations
end
map.resources :product
map.resources :supplier
Je me demande si cela pourrait être la meilleure solution, de toute façon ce que je veux est que l'utilisateur peut créer autant de listes qu'il le souhaite, chacune avec plusieurs évaluations.
La première fois qu'une liste de courses est créée est également remplie avec une évaluation au moins. Ensuite, l'utilisateur peut ajouter/supprimer des évaluations de/à la liste de courses.
Je voudrais une solution simple et élégante, sans callback Ajax.
Quelle est la meilleure façon de faire cela, à partir des contrôleurs/vues/routes perspectives? Ou devrais-je complètement changer mon schéma?
Merci!