いつもお世話になっております。
現在
「erb(haml)にセレクトボックスが設置されており、選択すると自動でDBの値が更新される」
ということを実現したいです。
今回は食材を選ぶと自動でその食材の名前が登録されるというようにしたいです。
上記のようにsubmitボタンはなく、選択するだけで更新したいです。
現状はこの様になっております。
haml
1= form_with url: foods_path(@food.id), method: "PATCH" do |f| 2 = fields_for :@food do |t| 3 = t.select :name, { '選択肢1': 'たまご', '選択肢2': 'にんじん' }, { include_blank: '食材' }, { class: 'ajax-normal'} 4 = f.hidden_field :ajax_food_id, id: "ajax-food-id", value: @food.id
js
1$('.ajax-normal').on('change', function(){ 2 saveInfo($(this)); 3}); 4 5var saveInfo = function(obj){ 6 $.ajax({ 7 url: '/foods/' + foods_id, 8 type: 'PATCH', 9 data: obj, 10 from: 'ajax' 11 }) 12}
ruby
1~ 2def update 3 food = Foods.find(id:params[:id]) 4 food.name = params[:name] 5 food.save
現在詰まっているのが
セレクトボックスで選択された値を送ることが出来ない
ということです。
上記のコードだと、hamlのクラスそのもの(ajax-nomal)を送信しているだけでセレクトボックスの選択が意味をなしておりません。
選択した項目の値がパラメーターとしてサーバーに飛び、それを受け取ったサーバーがupdateメソッドを起動して更新
をするにはどうすればいいのか。を教えていただけましたら幸いです。
よろしくおねがいいたします。
あなたの回答
tips
プレビュー