質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

375閲覧

フォームの数値がDBに保存されない。

rr2

総合スコア3

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/04 05:38

編集2020/05/04 07:42

前提・実現したいこと

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 | | |

他に必要なコードがあればお申し付けください。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

records_controllerを修正したら、保存できました。

Ruby

1def create 2 @record = @family.records.new(record_params) 3 if @record.save 4 # redirect_to family_records(@family), notice: '体温が送信されました' 5 flash[:notice] = '体温を投稿しました。' 6 else 7 @records = @family.records.includes(:user) 8 flash[:alert] = '体温の投稿に失敗しました。' 9 end 10 redirect_to family_record_path(@record, @family, @user) 11 end

投稿2020/05/04 10:53

rr2

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問