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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

5682閲覧

ActiveModel::UnknownAttributeError: unknown attribute ... というエラーが出ます

kazuki_user

総合スコア147

Ruby

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

Ruby on Rails

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

1グッド

0クリップ

投稿2020/05/31 23:11

編集2020/06/01 02:35

Postモデルを作成後、コンソールからp = Post.new(title: 'title 1', body: 'body 1')
を実行したところ、下記のエラーが出てしまいました。解決方法を教えて頂きたいです。

ActiveModel::UnknownAttributeError (unknown attribute 'body' for Post.)

よろしくお願いいたします。
お時間あるときにご返信いただければ幸いです。

イメージ説明

イメージ説明

退会済みユーザー👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

メッセージのとおり、Postモデルにbodyというカラムがないのではないでしょうか。

投稿2020/06/01 00:24

maisumakun

総合スコア145184

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

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

kazuki_user

2020/06/01 01:18

add_column :posts, :body, :textを、 Postモデルに書き足して、 p = Post.new(title: "title1", body: "body1") をターミナルにて実行したところ、 下記の通り別のエラーが出てしまいました。 NoMethodError (undefined method `add_column' for Post (call 'Post.connection' to establish a connection):Class) 解決法を教えて頂けると嬉しいです。 スクリーンショットを質問欄に添付しておきます。
kazuki_user

2020/06/01 01:19

Post.new Post.create Post.allなどすべてエラーが出てしまう状況です。
maisumakun

2020/06/01 01:20

> add_column :posts, :body, :textを、 Postモデルに書き足して それはモデルに書くものではなく、マイグレーションへ書くものかと思います。
kazuki_user

2020/06/01 02:34 編集

ご指摘ありがとうございます。 事前に『g model』をしていた為、add_column :posts, :body, :textではなく t.text :bodyをマイグレーション内に追記してみましたが、 ActiveModel::UnknownAttributeError (unknown attribute 'body' for Post.) という別のエラーが出てしまいました。 僕の追記に対する認識が間違えていたのでしょうか? ご回答頂けると嬉しいです。 尚、新たなスクリーンショットを添付しておきます。 マイグレーション画面です。
maisumakun

2020/06/01 02:35

> t.text :bodyをマイグレーション内に追記してみましたが、 「追記」は、既存のマイグレーションへ行いましたか?
kazuki_user

2020/06/01 02:54

はい。 元々 t.string :titleしか無かったので、 t.text :bodyを追記してみました。 rails g model Post title: string, body: text を以前に実行した筈なので、 t.text :bodyも自動生成されていると思ったのですが... 認識が誤っていたら、教えて頂きたいです。
maisumakun

2020/06/01 03:17

既存のマイグレーションに書き足した場合、いったんdb:rollbackしてからdb:migrateしないと反映されません。 > rails g model Post title: string, body: text 書式が違います。「rails g model Post title:string body:text」です。
kazuki_user

2020/06/01 03:25

本当にありがとうございました。 解決です。 ●既存のマイグレーションに書き足した場合➡ db:rollbackしてから、db:migrate ●rails g model ➡「,」不要 勉強になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問