0

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

4

1 回答 1

0

Ryan Bates 就这个主题做了一个很棒的截屏视频。 http://railscasts.com/episodes/197-nested-model-form-part-2 希望这可以为您提供所需的东西。

于 2013-08-14T00:29:16.437 回答