Я пытаюсь создать конфигуратор продукта с несколькими бизнес-правилами.
У меня есть две модели, одна - продукт, вторая - компонент. продукт имеет много компонентов, но
один и тот же компонент может быть использован в разных продуктах.
У меня есть модели, отношения и т. Д., И я пытаюсь построить представление представления в контроллере продукта
- в контроллере
def show
@product = Product.find(params[:id])
@productelements = Product.find(params[:id]).elements
end
- в поле зрения
<% @productelements.each do |p| %>
<li><%= p.name </li>
<li><%= p.quantity </li>
<% end %>
Пока все хорошо, за исключением того, что нужно соблюдать определенные правила. Это должно быть в состоянии настроить
продукты, такие как компьютеры. Количества определяются пользователем (в некоторых случаях), но они могут влиять
другие элементы. Например, если у меня есть следующее:
Element Quantity
Processor A 1
RAM in GB 2
HDD Type B 2
Пользователь может изменить процессор на процессор B, но в этом случае количество жесткого диска необходимо будет изменить на 1. Это только для иллюстрации.
Так что я пытаюсь понять, как:
- Оберните эти циклические элементы в форму.
- Сделайте форму реагирующей на изменения и вызовите функцию, которая будет проверять и корректировать при необходимости.
- отобразить продукт с проверенными полями.
Какой совет вы можете мне дать? Или, может быть, подход совсем не реалистичен?
Имейте в виду, что есть много продуктов и много правил, поэтому я не хотел делать заявления о контроле внутри контроллера, поскольку это тянет на мили!
Спасибо!