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

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

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

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

Ruby

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

3330閲覧

railsコンソールで新規追加したデータに、”id”や”created_at”が自動生成されない(nilになる)原因がわかりません

sssNaoto

総合スコア9

Ruby on Rails 5

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

Ruby

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2018/04/20 07:12

編集2018/04/20 07:30

前提・実現したいこと

rails初心者です。
練習のためrailsを使ってクイズ(web)アプリを作っています。
(プログラミング、web周りの知識に関しても初心レベルです)

現在データベースに解答を送る機能を作っているところで、
タイトルの件につまずいています。

ご回答、アドバイスをいただければ幸いです。

発生している問題・エラーメッセージ

rails consoleでデータを新規追加した際に自動入力されるはずの
"id:"、"created_at"などの値が
"nil"になっています。

ここに適切な値が自動生成されるように改善したいですが、
改善方法と、なぜこうなってしまったのか原因がわかりません。

昨日までこの問題はなかったのですが、
本日あらためて作業すると発生しました。

昨日から本日作業するまでの間、
コントローラーやビューはいじっていましたが、
データベースやモデルの設定などには全く手をつけていません。

補足:"Answer"というモデル名で作成しました。

###該当のソースコード

irb(main):001:0> answer2=Answer.new(content: "Hello") => #<Answer id: nil, content: "Hello", created_at: nil, updated_at: nil> #自動入力されるはずの"id:"、"created_at"などの値が"nil"になっています。 #以下は該当データのmigrationです。 class CreateAnswers < ActiveRecord::Migration[5.1] def change create_table :answers do |t| t.text :content t.timestamps null: false end end end #以下はshcema.rbの内容です。 class CreateAnswers < ActiveRecord::Migration[5.1] def change create_table :answers do |t| t.text :content t.timestamps null: false end end end

試したこと

・scaffoldで別に作成したアプリでも同じ現象が発生。
・マイグレーションファイルの" t.timestamps"に"null: false"を追記
・各種検索(特にsqliteの設定等に関して)

補足情報(FW/ツールのバージョンなど)

Railsのバージョンは5.1.6です。
データベースは開発モードです。

解答やアドバイスのために必要な情報をすべてお伝えできているか不安がありますが、
その際はご質問いただければ幸いです。

お目通しいただき、ありがとうございます。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ruby

1# モデルを生成し保存 2answer2=Answer.new(content: "Hello")

ruby

1# モデルを生成し 2answer2=Answer.new(content: "Hello") 3answer2.save! # 保存

データベースに保存時にcreated_atやidが発行されます。

投稿2018/04/20 07:42

asm

総合スコア15147

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

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

sssNaoto

2018/04/20 07:48

asmさん ご解答ありがとうございます! 無事解決いたしました。 「newで作成した時点で自動生成される」 というのは私の早とちりだったということですね。 大変助かりました。 ありがとうございます。
shink1212

2020/10/17 04:55

自分も同じところで迷っていたので、この質問と回答に助けられました。お二方ともありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問