こんにちは!
いつもお世話になっています。
早速ですがご相談です。
使用言語はrailsで、現在、Ajaxを用いてフォームを動的に追加できるサイトを作成しています。
その中で現在つまづいているのが、Ajaxファイルを囲う親元の**<%= form_for ... do |f| %>のfをAjaxファイル内で使用できず、<%= f.text_field ... %>などと書いていたところを全て<input type="text" ... >**HTMLに書き直さなければいけない状態になっております。。
<%= form_for ... do |f| %> <!-- この箇所に追加されるAjaxファイル内で|f|を使用したい --> <div class="ajax"></div> <% end %>
みなさまのお知恵を拝借できますと幸いですm(_ _)m
よろしくお願いいたします。
■■■■■■■■■■■■■ 以下追記・修正 ■■■■■■■■■■■■■
rifuchさん
ご質問ありがとうございます。
前提:ItemモデルとPatternモデルがあり、Item has many Patternsという関係です。
railsで、_item_form.html.erbというviewファイルから以下のようなformを作っています。
<%= form_for @item do |f| %> ... <%= f.fields_for @patterns do |pattern| %> ... <% end %> <div id=“ajax_box”></div> <% end %>
あるボタンを押した時に、itemsコントローラのnewアクションにform_for @itemのリクエストをajax通信で送り、そのアクションではnew.js.erbというファイルを呼び出し、new.js.erbの中では_new.htm.erbを#ajax_boxにrenderするようにしています。
この時に、_new.html.erb内で、form_for @item do |f|のf変数を引き継いで、_new.htm.erb内でf.fields_forのような感じでnestされたフォームを作成したいのですが、どのようにf変数をとってくればいいのかが分かりません。
今のままでは、_new.html.erb内でf.fields_forと書くとundefined local variableとなってしまいます。
回答1件
あなたの回答
tips
プレビュー