2013-07-11 2 views
0

Довольно новая для Rails. Я пытаюсь создать форму, которая обновляет две модели, и выводит на две отдельные страницы. Один, это возможно, и два, как? Я видел много сообщений об одной форме, способной обновлять несколько моделей, но не уверен, могу ли я иметь одну форму, которая создает две отдельные страницы.Одна форма для обновления нескольких страниц в Rails

Редактировать:

Спасибо за комментарии. И, извините за отсутствие ясности. в основном у меня две модели. Один для страницы «Предварительный просмотр курса». А вторая - для «Фактического курса». Любой пользователь может просмотреть страницу предварительного просмотра, но ему придется приобрести курс, чтобы просмотреть страницу курса.

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

Спасибо заранее!

+0

ли вы имеете в виду, имеющие одну форму создания шоу страницу для каждой модели созданной записи? – yellowreign

+0

, пожалуйста, подробно расскажите о своих моделях и ассоциациях. Также некоторые дополнительные спецификации, что вы точно хотите делать. – Debadatt

+0

Две страницы для показа, в зависимости от того, какую форму вы заполняете, она дает вам соответствующую страницу показа? Или после заполнения формы она каким-то образом запускает дополнительную страницу на новой вкладке? –

ответ

0

Вы не можете отображать сразу две страницы, пользователь может видеть только одну страницу за раз.

Но вы можете создать одну страницу, которая отображает результаты с помощью некоторой умной кодировки. Если у вас есть две модели, скажем, Model1 и Model2, и вид для каждого из них, скажем, model1/show.html.erb, вы можете изменить код show.html.erb от:

<%= @model.name %> 
etc... 

в

<%= render 'display' %> 

Создайте файл с именем _display.html.erb и поместите содержимое из show.html.erb там. Теперь, когда вы посещаете страницу показа для модели 1, она будет отображать частичную часть отображения и соответствующим образом отображать всю информацию. Намочите, промойте, повторите для Model2.

Таким образом, ваша страница возврата для вашей двойной формы также будет использовать эту же часть. На странице результатов для вашей формы будет выглядеть следующим образом:

<%= render 'model1/display' %> 

<%= render 'model2/display' %> 

Это тянет партиалы для каждого типа модели и помещает его на странице результатов.

Для получения дополнительной информации об использовании партиалы см: http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

Смежные вопросы