#javascript #jquery #ruby-on-rails #forms #nested-forms
#javascript #jquery #ruby-on-rails #формы #вложенные формы
Вопрос:
Я разрабатываю систему управления контентом для нужд моего клиента, и я застрял. Мне нужно создать систему для управления продуктами и их ценами. Проект предназначен для туристического агентства, поэтому каждая «цена продукта» имеет сезоны, и для каждого сезона существует категория продукта. Каждая категория товаров имеет свои цены. Например:
Я «создаю» отель (продукт). Я также должен создать «ценовые периоды» (низкий сезон, середина сезона и т. Д.). В каждом ценовом периоде я создаю ценовую категорию (например, «Gold Club Rooms») и в каждой категории я создаю цену номера (например, «Двухместный люкс — 100 $»). price_periods, price_groups и prices — это все модели, связанные с продуктом. Моя проблема в том, что я должен создать все это в одной форме. Я придумал способ, но он довольно сложный, и мне пока не удалось заставить его работать должным образом…
В нескольких словах, я создал двухэтапную отправку. Один для продукта и price_periods, а второй шаг для price_category и price (в тройной вложенной форме). Я ищу более чистый способ построить это, поэтому я прошу о помощи. Есть ли шаблон проектирования, которому я должен следовать? Или книга или справочник?
Пожалуйста, помогите 🙂 Извините, если это «Не по теме», но я действительно застрял и был бы признателен за любую помощь. Заранее спасибо.
мои модели:
Продукт
class Product < ActiveRecord::Base
# Concerns
include Translatable
translates :title, :description, :address
# Validations
validates_presence_of :address_lat, :address_lon
# Associations
has_and_belongs_to_many :product_categories
has_many :product_translations
has_many :prices
has_many :price_periods
has_many :price_groups
belongs_to :location
accepts_nested_attributes_for :product_translations
accepts_nested_attributes_for :prices
accepts_nested_attributes_for :price_periods
accepts_nested_attributes_for :price_groups
end
Период цены
class PricePeriod < ActiveRecord::Base
# Associations
has_many :prices
belongs_to :product
end
Ценовая группа
class PriceGroup < ActiveRecord::Base
# Associations
has_many :prices
belongs_to :product
end
Цена
class Price < ActiveRecord::Base
# Associations
belongs_to :product
belongs_to :price_group
belongs_to :price_period
end
Комментарии:
1. Не могли бы вы опубликовать свои миграции и модели?
2. Я думаю, вам нужно что-то вроде angular / ember / backbone для чистого способа создания пользовательского интерфейса, подобного вашему. Я предпочитаю angular. Но выбор за вами.
3. Я добавил свои модели. В прошлом я использовал angular, но стараюсь этого избегать. В этом проекте я использовал чистый jquery вместе с некоторыми плагинами. Для этого мне в основном нужен шаблон архитектуры. Я все же попробую angular, на всякий случай 🙂 Спасибо. Любое другое предложение для шаблона архитектуры / дизайна.