2013-11-13 6 views
0

У меня есть форма, которая создает новую PlanEntry.Сохранение значений формы при переадресации

В верхней части этой формы у меня по этой ссылке, чтобы загрузить видео как часть PlanEntry:

<%= link_to "Upload Video", new_video_sources_path %>

Это берет пользователя в другую форму, чтобы загрузить видео. При успешном завершении возвращается к новой форме PlanEntry.

Это прекрасно работает, если пользователь всегда начинает загрузку видео, но в некоторых случаях они могут уже создавать проекты, такие как «заголовок» и «описание». В этих случаях эти значения теряются, когда пользователь возвращается в форму после загрузки видео.

Как сохранить эти значения?

ответ

0

Я понял это, но немного обходным путем. В основном я заменил эту строку следующим образом:

<%= f.submit "Upload Video", :name=>"commit", :value=>"Upload Video" %> 

Это вторая кнопка для отправки формы PlanEntry. Теперь в моем контроллере я проверяю, какая кнопка нажата в представлении. Если это была кнопка «Загрузить видео», я сохраняю все параметры в сеансе и перенаправляю к форме загрузки видео.

if params[:commit] == "Upload Video" 
    session[:plan_entry] = params[:plan_entry] 
    redirect_to new_video_sources_path 
    else 
    ... 
    end 

Когда видео загружено, оно перенаправляется обратно в новую форму PlanEntry. В моем новом контроллере PlanEntry # я проверяю наличие существующих переменных сеанса. Если это так, я хватаю их, а затем очищаю.

if session[:plan_entry].present? 
    @plan_entry.assign_attributes(session[:plan_entry]) 
    session[:plan_entry] = nil 
    end 
Смежные вопросы