我在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
答案 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远程表单和隐藏输入是很简单的,所以你应该能够为你的表单所采用的任何结构做同样的事情。