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

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

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

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

データベース

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

Q&A

解決済

3回答

1007閲覧

dbの保存時にエラーが発生してしまう

sasamo2000

総合スコア15

Ruby on Rails 5

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

データベース

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

0グッド

0クリップ

投稿2019/08/10 15:13

編集2019/08/11 09:59

解説文にcomment
合否判定の要素にjudgement
をそれぞれ当てたcreateテーブルを作りたいです

今はテーブルを作成し本来はそれぞれの入力フォームを作り追加のボタンでこのテーブルにデータが追加される予定なのですが、まずは正常にデータを保存できるのか試そうとしたところ
「NoMethodError (undefined method `save' for nil:NilClass)」
というエラーが出たので調べたところ、NilClassにsaveメソッドなんてない
という趣旨のエラーらしいのですがそれであっているのかとどうしたらいいのかが具体的にはわかりません。

↓モデルを作成した際のファイルです。

ruby

1class CreateQuestions < ActiveRecord::Migration[5.2] 2 def change 3 create_table :questions do |t| 4 t.text :content 5 t.text :comment 6 t.text :judgment 7 8 t.timestamps 9 end 10 end 11end

command

1//モデルを作成 2rails g model create content:text comment:text judgement:text 3rails db:migrate 4 5//内容を追加し保存 6create=Create.new(content:"~", comment:"~", judgement:"~") 7create.save 8 9//中身を確認 10rails console 11crate.valid

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

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

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

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

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

mokemokechicken

2019/08/10 15:16

> まずは正常にデータを保存できるのか試そうとした この部分を質問に書かれてみてはどうでしょうか? > NilClassにsaveメソッドなんてない という趣旨のエラーらしいのですがそれであっているのか その理解であっていますよ。
sasamo2000

2019/08/10 15:54

返信ありがとうございます。 保存の動作を確認した際の操作内容を追加しました。
guest

回答3

0

自己解決

1から整理してやり直したところすんなり実行できました。

投稿2019/08/15 14:34

sasamo2000

総合スコア15

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

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

0

なんで

bash

1rails g model create content:text comment:text judgement:text

を実行して

ruby

1class CreateQuestions < ActiveRecord::Migration[5.2] 2 def change 3 create_table :questions do |t| 4 t.text :content 5 t.text :comment 6 t.text :judgment 7 8 t.timestamps 9 end 10 end 11end

このマイグレーションファイルができるのかが不明です。
自身が何をやっているのか理解しながら作業できていますか?

本当に

bash

1rails g model create content:text comment:text judgement:text

を実行したのであれば、生成されるマイグレーションファイルは

ruby

1class CreateCreates < ActiveRecord::Migration[5.2] 2 def change 3 create_table :creates do |t| 4 t.text :content 5 t.text :comment 6 t.text :judgement 7 8 t.timestamps 9 end 10 end 11end

こうなるはずですし、逆にマイグレーションファイルが正しいのであれば

bash

1rails g model question content:text comment:text judgement:text

を実行しているはずです。

マイグレーションファイルを仮に正とみて話を進めますが、
そうなると当然Createクラスは存在しないので
Createを使おうとした時点でNameErrorが発生します。

ruby

1Question.new(content:"a",comment:"b",judgment:"c")

が正しいです。

ruby

1create=questions.new(content:"a",comment:"b",judgment:"c")

などと書いてしまうのは変数や定数、クラスについてなどRubyの基礎が欠落している証拠です。
Rubyというプログラミング言語の一から学び直してください。

投稿2019/08/14 06:06

編集2019/08/14 06:10
Mugheart

総合スコア2344

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

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

0

cerate=Create.new(content:"", comment:"", judgement:"~")
create.save

typoですね
cerate
create

投稿2019/08/10 22:11

winterboum

総合スコア23329

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

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

sasamo2000

2019/08/11 10:02

タイポご指摘ありがとうございます。 入力し直した結果「-bash: syntax error near unexpected token `('」 とエラーが出ています。
winterboum

2019/08/11 10:06

bash でエラーですか???? 何を実行したら、そのエラーになりましたか?
sasamo2000

2019/08/11 10:08

cd フォルダ名 create=Create.new(content:"a", comment:"b", judgement:"c") ここにエラー文です
winterboum

2019/08/11 10:36

>「NoMethodError (undefined method `save' for nil:NilClass)」 というエラーが出たので の時と違うことやてますね? 同じことをやって、 同じエラーが出ることを確認し、 それがどのファイルの何行目か、というのがえらーメッセージにありますから、それを示すと共に、 そのファイルも開示して下さい。
sasamo2000

2019/08/11 10:59

間違えてしまい申し訳ないです。。。 rails console create=Create.new(content:"a",comment:"b",judgment:"c") 実行後 Traceback (most recent call last): 1: from (irb):1 NameError (uninitialized constant Create) と表示されました。 NameErrorとのことで見直したところcreate_table "questions" ,~となっていたので create=questions.new(content:"a",comment:"b",judgment:"c") と直して再度試しましたがNameErrorと出ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問