Обычная ситуация при разработке веб-сайта - наличие одного действия индекса, которое перечисляет и создает несколько разных ресурсов.
Например, предположим, что у вас есть контроллер транзакций, который перечисляет как платежи, так и расходы на одной странице (где расходы - это автоматически рассчитанная группа платежей).
Для действия с индексом транзакций существует две формы: одна для создания нового расхода, а другая для создания нового платежа. Обе эти формы указывают на подчинение их соответствующим контроллерам создания действий. Если данные недействительны, они должны перенаправить обратно на транзакции # index и отобразить сообщения об ошибках.
Это всего лишь общее обсуждение, оно не связано с конкретной проблемой, поэтому предположим следующее:
- AJAX не будет использоваться
- Мы не можем обобщать расходы и платежи в общую базу
Проблема в том, что, хотя мы можем передавать данные на другой контроллер, мы не можем получить от них ответ. Мы можем перенаправить обратно, но тогда мы потеряем наши данные и ошибки проверки. Для этого есть несколько «хакерских» решений, но я бы хотел сохранить это простым.
Одним из способов решения этой проблемы было бы выполнение определенных действий на контроллере транзакций (например, create_expense и create_payment). Это будет работать, но это приведет к дублированию кода и нарушению REST, и мне это не нравится.
Реальный вопрос заключается в следующем: как мы можем повторно использовать действия контроллера из других мест на веб-сайте и заставить его чувствовать себя как естественный процесс?