Предварительная загрузка данных формы
Я использую технику Райана Бейтса, проиллюстрированную в Railscasts Episode 197, чтобы форма могла "расти" по мере того, как пользователь добавляет в нее больше элементов. Это все работает отлично, но мне нужно вызвать страницу, предоставляя начальный элемент как часть URL.
Так как в методе Райана пользователь нажимает кнопку "Добавить", чтобы вызвать функцию jQuery для добавления полей в форму, я немного запутался, как передавать информацию из контроллера в jQuery для вызова и предварительного заполнения одного из этих новых полей.,
Я думаю об этом неправильно?
2 ответа
Да, вы думаете об этом неправильно;-)
Возьмите эту форму, например:
<% form_for @survey do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<% f.fields_for :questions do |builder| %>
<%= render 'question_fields', :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add Question", f, :questions %>
<p><%= f.submit "Submit" %></p>
<% end %>
fields_for
является итератором; так что все, что должен сделать ваш контроллер, это:
@survey.questions.build(:content => "Prepared question")
и это будет отображаться на странице.