Приложение My Rails 2.3 имеет пользовательскую модель и обычные действия контроллера. Форма редактирования может быть доступна двумя способами: когда пользователь редактирует свой собственный профиль с домашней страницы, или когда пользователь-администратор редактирует чужой профиль из коллекции пользователей.
То, что я хотел бы сделать, это перенаправить действие обновления обратно на указанное действие редактирования, а не действие обновления. Если я выполняю простой redirect_to (: back) в рамках обновления, он возвращается к форме редактирования - не хорошо.
Одно из решений - полностью забыть о реферерах и перенаправлении на основе current_user и обновленного пользователя: если они одинаковые, вернитесь на домашнюю страницу, в противном случае перейдите на страницу сбора пользователей. Это сломается, если я когда-нибудь добавлю третий путь к форме редактирования. Сомнительно, что я когда-нибудь сделаю это, но я бы предпочел решение, которое не было бы таким хрупким.
Другим решением является сохранение реферера формы редактирования в скрытом поле, а затем перенаправление на это значение из действия обновления. Это не совсем правильно, хотя я не могу объяснить, почему.
Есть ли лучшие подходы? Или я должен перестать беспокоиться и пойти с одним из двух, которые я упомянул?