У меня есть ситуация, когда у меня есть Продукты , Поставщики , Списки покупок и Оценки .
A shopping_list состоит из множества оценок каждая с продуктом , конкретным поставщиком и ценой .
Мои модели следующие:
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
My rout.rb is:
map.resources :shopping_lists do |shopping_list|
shopping_list.resources :valuations
end
map.resources :product
map.resources :supplier
Интересно, может ли это быть лучшим решением?, в любом случае, я хочу, чтобы пользователь мог создать столько списков, сколько пожелает, каждый с несколькими оценками.
При первом создании списка покупок он также заполняется одной оценкой вне менее .Затем пользователь может добавлять / удалять оценки в / из списка покупок.
Я хотел бы получить простое и элегантное решение без обратных вызовов Ajax.
Каков наилучший способ сделать это из контроллеры / представления / маршруты перспективы?Или я должен полностью изменить мою схему?
Спасибо!