0

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!

Répondre