Короткая версия : Какие есть хорошие способы, позволяющие конечному пользователю определять «процессы» или последовательно выполняемые операции CRUD в довольно большом проекте, чтобы они могли создавать шаблоны для общие процессы (например, создание 2 заявок на каждое новое событие, публикуемое автоматически)? Что-то вроде Огурец , но для операций CRUD ... или даже Селен ?
Вот ситуация:
Я унаследовал очень большой проект (проект Spree eCommerce ), который я модифицирую для клиента. Это очень сложный и очень хорошо выполненный проект. Большинство / все рабочие процессы для создания Products
, ProductGroups
, категорий и т. Д. Очень хорошо определены, что означает, что они могут быть автоматизированы.
Итак, мой клиент хочет иметь возможность сказать «когда я создаю новый Event
, я хочу, чтобы он тоже создал это:
- Два билета: 1 на 400 долларов, один на 500 долларов, которые поступят в продажу через X и Y раз после создания мероприятия
- Если это это
Event
, также создайте это специальное предложение "ранняя пташка". *
Это переводит в create/save
-ing 4, может быть, больше моделей в Spree: Event, Product, ProductGroup, ProductProperty
.
Если бы я должен был вручную решить этот крайний случай, мне пришлось бы написать немало кода и провести серьезный рефакторинг (или копирование), чтобы мой клиент мог создавать свои билеты для каждого создаваемого ими события. , Но как насчет следующего случая: «Я хочу, чтобы он классифицировал каждый Билет по категориям , и , на основе событий date
, location
и meta_keywords
». Теперь я должен начать все сначала ...
Что я хочу сделать для них, так это позволить им настроить все эти вещи, чтобы они могли определить:
- все виды значений по умолчанию для заполнения описания продукта, цены и т. Д.
- для создания X количества продуктов на основе названия события.
- может быть, еще кое-что позже.
Конечным результатом всего этого является то, что Администратор заполняет одну форму и заполняет 5 форм в фоновом режиме (вещи, о которых им не нужно знать обязательно, но необходимо сделать).
Я не знаю лучшего или наиболее распространенного способа сделать это. Я выясняю это по ходу дела, но я уверен, что у многих из вас есть для этого хорошие идеи.
Итак, вопрос (ы):
Каков наилучший способ сделать все это настраиваемым?
В Spree есть много методов, которые мне нужно было бы спрятать внутри контроллеров, поэтому похоже, что хорошей практикой будет не включать какие-либо методы в контроллер, а только ссылки на методы в модулях (чтобы вы могли использовать его везде) , Если вам не разрешили соединить несколько вызовов redirect_to
вместе, чего нельзя делать.
Есть ли примеры чего-то с такой конфигурацией для конечного пользователя? Что-то вроде шаблонов ERB для последовательных операций CRUD?
Мне действительно нужно кодировать все эти случаи вручную?
Приведенный выше пример (создания 2-3 заявок на событие на основе некоторых значений свойств) довольно специфичен. Кто-нибудь из вас смог создать систему, которую можно настроить? Конечной целью для них было бы: «О, я делал это не раз, давайте просто создадим шаблон для этого события, чтобы в следующий раз он создавал все, что я делал».
Просто ищите какой-то толчок в правильном направлении или несколько хороших примеров автоматизации рабочего процесса. Что-то вроде огурец , но для операций CRUD ...
Спасибо!