Rails: отношения «многие ко многим» с 3 моделями - PullRequest
0 голосов
/ 10 августа 2010

У меня есть ситуация, когда у меня есть Продукты , Поставщики , Списки покупок и Оценки .

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.

Каков наилучший способ сделать это из контроллеры / представления / маршруты перспективы?Или я должен полностью изменить мою схему?

Спасибо!

1 Ответ

0 голосов
/ 11 августа 2010

Только что нашли два отличных ресурса от Райана Бейтса:

http://asciicasts.com/episodes/196-nested-model-form-part-1

http://asciicasts.com/episodes/197-nested-model-form-part-2

Посмотрим, сделает ли это работу!

// ОБНОВЛЕНИЕ: отлично сработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...