コントローラーでオブジェクトを作成したり、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番目のアプローチのようにオブジェクトを作成したりする必要なく、これを行う別の方法はありますか?