如何创建多个表单而不必在控制器中创建对象/通过ajax加载它们?
假设你有一个论坛模型,其中有很多帖子,每个帖子都有很多标记。您正在查看forms_controller#index
的帖子列表。
假设您要允许用户标记来自同一模板的帖子。一种方法是在需要时通过远程链接加载表单。
# forums/index.html
= link_to "Add Tag", new_post_tag_path, remote: true
# tags_controller.rb
def new
@tag = @post.tags.build
respond_to do |format|
format.js
end
end
# tags/new.js.erb
<%= j render("form") %>
但是这需要转到服务器并再次返回以呈现表单。
另一种方法是在循环帖子时创建对象。
- @posts.each do |post|
= form_for @post.tags.build do
如果您想同时创建多个标签,那么效果不会很好。
有没有其他方法可以使用JS,而不必像第二种方法那样去服务器/或创建对象?
答案 0 :(得分:0)
Ryan Bates在这个主题上做过精彩的截屏。 http://railscasts.com/episodes/197-nested-model-form-part-2希望这能为您提供所需的一切。