前提・実現したいこと
Ruby on Railsを使用し、体温管理アプリを開発しています。
フォームに打ち込んだ数値をDBに保存し、
その後chart.jsを使って表にして、表示させたいのですが
DBに数値と日付が保存されません。
投稿に失敗したとき用の『体温の投稿に失敗しました。』が表示され、
DBもからのままです。
修正方法を教えてください。
発生している問題・エラーメッセージ
DBに数値と日付が保存されません。
該当のソースコード
haml
1.form 2 = form_for [@family, @record] do |f| 3 .input-box 4 = f.datetime_field :date, value: Time.now.strftime("%Y-%m-%dT%H:%M") 5 = f.text_field :date, class: 'form__record__value', placeholder: '体温を入力してください' 6 = f.submit 'Send', class: 'form__submit'
records_controllerrb
Ruby
1class RecordsController < ApplicationController 2 before_action :set_family 3 before_action :currect_user, only: [:destroy] 4 5 6 def index 7 @record = Record.new 8 @records = @family.records.includes(:user) 9 end 10 11 def create 12 @record = current_user.records.build(record_params) 13 if @record.save 14 # @record = @family.records.new(record_params) 15 # redirect_to family_records(@family), notice: '体温が送信されました' 16 flash[:notice] = '体温を投稿しました。' 17 else 18 @records = @family.records.includes(:user) 19 flash[:alert] = '体温の投稿に失敗しました。' 20 end 21 redirect_to root_path 22 end 23 24 private 25 def record_params 26 params.require(:record).permit(:value, :date) 27 end 28 29 def set_family 30 @family = Family.find(params[:family_id]) 31 end 32 33 def currect_user 34 @record = current_user.records.find_by(id: params[:id]) 35 unless @record 36 redirect_to root_path 37 end 38 end 39end
試したこと
体温のvalueがintegerだったのでrealに変更しました。
補足情報(FW/ツールのバージョンなど)
・Rails 5.0.7.2
・ruby 2.5.1p57
・postgreSQL
データーベース中身です。
Column | Type | Collation | Nullable | Default ------------+-----------------------------+-----------+----------+------------------------------------- id | integer | | not null | nextval('records_id_seq'::regclass) value | real | | | user_id | integer | | | family_id | integer | | | created_at | timestamp without time zone | | not null | updated_at | timestamp without time zone | | not null | date | timestamp without time zone | | |
他に必要なコードがあればお申し付けください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。