Rails 3 - 使用javascript将部分内容添加到嵌套表单

时间:2011-11-23 16:46:34

标签: javascript ruby-on-rails-3 partial-views

我在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这样的帮助器我可以使用'允许我使用此部分动态返回一个新的子条目部分。

e.g。类似的东西:

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 个答案:

答案 0 :(得分:2)

看一下以下的railscast。我想这就是你要找的东西。

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

示例代码链接在此处:https://github.com/ryanb/railscasts-episodes/tree/master/episode-197

注意,它是(编写良好的)示例代码。它取决于HTML表。使用jquery远程表单和隐藏输入是很简单的,所以你应该能够为你的表单所采用的任何结构做同样的事情。