Хорошие идеи для автоматизации общих операций CRUD в Rails - PullRequest
2 голосов
/ 27 января 2010

Короткая версия : Какие есть хорошие способы, позволяющие конечному пользователю определять «процессы» или последовательно выполняемые операции 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 ...

Спасибо!

...