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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

18280閲覧

railsの「ActiveModel::UnknownAttributeError」について

runban

総合スコア152

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/10/20 02:27

railsにて、投稿一覧と投稿フォームを同じページに表示できるように進めています。
現状投稿フォームをブラウザ上に表示させることはできました。ただ、投稿フォームを入力後、「Create Book」ボタンを押すと、「createアクション」が働いて、詳細画面(showアクション)へページ遷移させるつもりが、
「ActiveModel::UnknownAttributeError in BooksController#create
unknown attribute 'title' for Book.」
とエラーが発生してしまいます。

上記エラーにつきまして、どのようなことが原因で、尚且つどのように対処すれば詳細画面へページ遷移できますでしょうか。
何卒、よろしくお願いいたします。

↓ railsのコントローラーです

railsController

1class BooksController < ApplicationController 2 def index 3 @books = Book.all 4 @book = Book.new 5 end 6 7 def create 8 book = Book.new(book_params) 9 book.save 10 redirect_to book_path(blog) 11 end 12 13 def show 14 @book = Book.find(@params[:id]) 15 end 16 17 private 18 def book_params 19 params.require(:book).permit(:title, :body) 20 end 21end 22

↓ railsのHTMLです

railsHTML

1<div class="main"> 2 <div class="Books"> 3 <h1>Books</h1> 4 <table> 5 <thead> 6 <tr> 7 <th>Title</th> 8 <th>Body</th> 9 </tr> 10 </thead> 11 <tbody> 12 <% @books.each do |book| %> 13 <tr> 14 <td><%= book.title %></td> 15 <td><%= book.body %></td> 16 <td><%= link_to 'Show', book_path(book) %></td> 17 <td><%= link_to 'Edit', edit_book_path(book) %></td> 18 <td><%= link_to 'Destroy', books_path %></td> 19 </tr> 20 <% end %> 21 </tbody> 22 </table> 23 </div> 24</div> 25 26 27 28 29<h2>New book</h2> 30<%= form_with model:@book, local:true do |f| %> 31 32 <p>Title</p> 33 <%= f.text_field :title %> 34 35 <p>Body</p> 36 <%= f.text_area :body %> 37 38 <%= f.submit 'Create Book' %> 39<% end %> 40

↓ railsのルーティングです

routing

1Rails.application.routes.draw do 2 resources :blogs 3end

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

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

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

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

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

guest

回答1

0

ベストアンサー

unknown attribute 'title' for Book

エラーメッセージのとおりです。Booktitleという列はありますでしょうか?

投稿2020/10/20 03:53

maisumakun

総合スコア145356

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

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

runban

2020/10/20 06:30

マイグレーションファイルにて 「class CreateBooks < ActiveRecord::Migration[5.2] def change create_table :books do |t| t.string :title t.text :body t.timestamps end end end」 と「title」のカラム設定を行っています。 もし他に設定すべきものがありましたら、お手数おかけいたしますがご教示いただけますと幸いです。
maisumakun

2020/10/20 06:35

resources :blogsとなっていますが、BlogとBookがごっちゃになっていたりはしないでしょうか?
runban

2020/10/20 07:30

ありがとうございます、ご回答頂いてから確認致しましたところ、下記2点で修正箇所がありました。 ・resources:blogs → resources:books ・「createアクション」内の redirect_to book_path(blog) → redirect_to book_path(book) ただ、コードを実行致して確認したしましたが、エラー内容が同じ内容(ActiveModel::UnknownAttributeError)で発生してしまいます。。 この場合、「blogs」と間違えて記入している箇所が他にもあるからエラーが表示されるのでしょうか。 それとも、他に予想されるエラー原因があったりするのでしょうか。 よろしくお願いいたします。
maisumakun

2020/10/20 07:34

サーバを再起動しても再現しますか? (テーブルの更新を行った場合など、時折モデル構造が正しく読み込まれないことがあります)
runban

2020/10/20 07:44

再起動についてご解説頂きありがとうございます。 再起動して再度コードを実行してみたのですが、同様のエラーが表示されてしまいました。。
runban

2020/10/20 10:26

一度アプリを削除致しまして、maisumakunさんからご指摘頂いた部分に注意しながら一から作り直した結果、エラーが発生せずに処理することができるようになりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問