如何创建多个表单而无需在控制器中创建对象/通过 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,而不必像第二种方法那样去服务器/或创建对象?