Rails 3 - Добавление частичного к вложенной форме с использованием JavaScript - PullRequest
1 голос
/ 23 ноября 2011

У меня есть частичная вложенная форма в приложении Rails 3, которая выглядит следующим образом:

<% f.fields_for :tips, tip do |tip_field| %>
  <p class="fields">
  Course: <%= tip_field.text_field :course %>
  </p>
<% end %>

Каждое письмо может иметь несколько советов.Многострочная запись работает нормально.
Однако я хочу иметь возможность динамически добавлять новые строки, используя Javascript.т.е. я хочу иметь возможность нажать «Новая строка» и добавить в форму дополнительный дочерний раздел.

Помощник fields_for правильно создает строки для ввода.Каждая строка выглядит примерно так:

  Course: <input id="email_tips_attributes_3_course" name="email[tips_attributes][3][course]" size="30" type="text" />

Если я смогу пропустить следующий номер строки, есть ли такой помощник, как fields_for, который я могу использовать, что позволит мне использовать этот фрагмент для динамического возврата нового дочернего раздела.

например, что-то вроде:

def newtip
  @tip = Tip.new
  f = imaginary_form_with_the_next_line_being(5)
  f.fields_for @tip do |ftip|
    respond_to do |format|
      format.html { render :partial=>'tip_fields', :locals => {:tip => @tip, :f=>ftip}}
    end
  end
end

1 Ответ

2 голосов
/ 24 ноября 2011

Посмотрите на следующий Railscast.Я думаю, это то, что вы ищете.

http://railscasts.com/episodes/197-nested-model-form-part-2

Пример кода связан здесь: https://github.com/ryanb/railscasts-episodes/tree/master/episode-197

Обратите внимание, это (хорошо написанный) пример кода.Это зависит от таблиц HTML.Было легко адаптировать его для использования с удаленными формами jquery и скрытыми входами, поэтому вы должны иметь возможность делать то же самое для любой структуры, которую принимают ваши формы.

...