前提・実現したいこと
ユーザーの名前を一覧表示させ、その隣にあるボタンを押すと、現在時刻とユーザーIDが別テーブルに保存させる仕組みを実装しています。ボタンタグのValueには各ユーザーのIDが格納されていて、ボタンをクリックした際に、そのボタンタグのvalueを変数に代入し、その値をコントローラーのcreateアクションに送信、保存したいと考えています。学習を始めて日が浅く、変な質問だったら申し訳ないです。
発生している問題・エラーメッセージ
エラーはでないが、ajaxでのデータの受け渡しがうまくいかない。
該当のソースコード
index.html.haml
%ul - @users.each do |user| %li = user.name %button{class: "start-btn", value: user.id} 出勤
records_controller.rb
def create @record = Record.create(into: Time.now, user_id: params[:id]) respond_to do |format| format.json { redirect_to root_path } format.html { redirect_to root_path } end end
user.js
$(document).on('click', '.start-btn', function(e){ e.preventDefault(); var id = $(this).val(); $.ajax({ url: '/records', type: 'POST', data: id, processData: false, contentType: false, dataType: 'json' }) .done(function(data){ console.log(data) }) })
試したこと
jsファイルにて変数に値を代入後、console.logでその中身を確認すると、値は取得できているが、ボタンをクリックすると保存されたレコードにはNULLが入っている。