0

コントローラーでオブジェクトを作成したり、ajax でロードしたりせずに、複数のフォームを作成するにはどうすればよいですか?

多数の投稿を持つフォーラムモデルがあり、各投稿には多数のタグがあるとします。の投稿のリストを表示しています。forms_controller#index

ユーザーが同じテンプレートから投稿にタグ付けできるようにしたいとします。1 つの方法は、必要に応じてリモート リンクを介してフォームを読み込むことです。

# 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を使用して、サーバーにアクセスしたり、2番目のアプローチのようにオブジェクトを作成したりする必要なく、これを行う別の方法はありますか?

4

1 に答える 1

0

Ryan Bates は、この件に関して素晴らしいスクリーンキャストを作成しました。 http://railscasts.com/episodes/197-nested-model-form-part-2 うまくいけば、これで必要なものが得られるはずです。

于 2013-08-14T00:29:16.437 に答える