То же частичное для нескольких представлений, возвращающихся к тому представлению, из которого оно было вызвано - PullRequest
0 голосов
/ 16 января 2009

В настоящее время я повторно использую партиал в двух разных видах.

Вид A

Вид B

Частичное относится к модели A, но связано с моделью B, поэтому применимо и к модели B.

Он содержит форму, и при отправке данных он всегда перенаправляет пользователя в View A. Однако, когда я отправляю форму из View B, я бы хотел перенаправить обратно в View B вместо формы A. *

Причина, по которой он перенаправляет прямо сейчас в представление A, заключается в том, что это модель, к которой принадлежит эта форма. Поэтому при публикации он обращается к контроллеру A и использует перенаправление, которое переводит пользователя в a_url.

Как я могу сказать своей форме (или, более того, действию контроллера) перенаправить пользователя туда, откуда он пришел?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 января 2009

решаемая.

Я добавил в форму скрытое поле, в котором содержалось имя контроллера, в котором был обработан фрагмент, а затем мой блок response_to определил, куда отправить пользователя.

Посмотреть код:

<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %>

Код моего контроллера:

if params[:submitted_from] == 'A'
  redirect_to a_url
else
  redirect_to b_url
end
0 голосов
/ 16 января 2009

Вместо использования скрытого тега вы можете разместить его в сеансе:

session[:submitted_from] = new_model_url

и в другом действии ..

redirect_to(session[:submitted_from])
session[:submitted_from] = nil

Довольно просто переключать переменные формы, тогда как подделать сеанс может быть труднее (но не невозможно). Я бы пошел по этому пути, если бы это было мое заявление.

...