ajaxでデータが送れません
https://qiita.com/manbolila/items/7c44142de50093470580のような多階層カテゴリの実装を目指しています
親カテゴリが選択さレたら、親に紐づく子カテゴリを取得したいです
親カテゴリ(大会選択)が選択されたら、jsで選択されたidを取得します
<div class="contents row"> <div class="containe_r"> <%= form_with url: tweets_path,local: true do |f| %> <h3> 投稿する </h3> <%= f.label "大会選択" %> <%=f.select :tournament_id, options_for_select( @category_parent_array.map{|c| [c[:name], c[:id]]}),{include_blank: "選択してください"}, { class: "parent_category_box", id: "parent_category"}%> <%= f.label "学校選択"%> <div class="school"></div> <%=f.submit value: "SENT",class: "game_record"%> <% end %> <div class="back"> <%= link_to "戻る",root_path%> </div> </div> </div>
tweet.js
以上略 $("#parent_category").on("change",function(){ let parentCategory = $("#parent_category").val(); ここで取得 console.logで確認済み if(parentCategory !=""){ $.ajax({ type: 'GET', url: '/tweets/new', data: {tournament_id: parentCategory}, dataType: 'json' }) .done(function(children){ $(".tournament_select_child").empty(); let insertHTML = ''; children.forEach(function(child) { insertHTML += appendOption(child); }); appendChildrenBox(insertHTML); }) .fail(function() { alert('error:子カテゴリーの取得に失敗'); })
そしてコントローラーで受け取ります
def new @tweet=Tweet.new @category_children = Category.find(params[:tournament_id]).children respond_to do |format| format.html format.json end end
###ActiveRecord::RecordNotFound in TweetsController#new
この時にコントローラー3行目でCouldn't find Category without an IDが発生します
parentCategoryの中身はちゃんと入っていることを確認しました
idが無い(ajaxで送信できていない)ということでしょうか?
jsの記述は間違っているようには思えないのですが、よろしくお願いいたしっます
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。