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

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

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

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

Q&A

1回答

1367閲覧

RailsのActiveModel::UnknownAttributeError について

rainame

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2022/06/21 03:20

Ruby on Railsでアプリケーションを作成しています。

投稿された一覧と投稿フォームを同じ画面に表示できるように制作しています。
現在、投稿フォームをブラウザ上に表示させることはできました。ただ、投稿フォームを入力後、「Create」ボタンを押すと、createアクションが働いて、詳細画面(showアクション)へリンクさせるつもりが、
「ActiveModel::UnknownAttributeError in BooksController#create
unknown attribute 'title' for Book.」とエラーが発生してしまいます。
「エラーの内容はBookモデルにtitleの列が見つかりません」ということだと思うのですが、
Bookモデルにtitleの列は既に作成済みです。

このエラーにつきまして、どのようなことが原因で、どのように対処すれば詳細画面へ移れますでしょうか。
かなりの初心者ですがよろしくお願いいたします。

↓ルーティング

Rails.application.routes.draw do
root to: 'homes#top'
resources :books
end

↓ Booksコントローラー

class BooksController < ApplicationController
def index
@books = Book.all
@book = Book.new
end

def create
book = Book.new(book_params)
book.save
redirect_to book_path(book)
end

def show
@book = Book.find(params[:id])
end

private
def book_params
params.require(:book).permit(:title, :body)
end
end

↓マイグレーションファイル
class CreateBooks < ActiveRecord::Migration[6.1]
def change
create_table :books do |t|
t.string :title
t.text :body
t.timestamps
end
end
end

↓一覧のhtml

<div class="main"> <div class="Books"> <h1>Books</h1> <table> <thead> <tr> <th>Title</th> <th>Body</th> </tr> </thead> <tbody> <% @books.each do |book| %> <tr> <td><%= book.title %></td> <td><%= book.body %></td> <td><%= link_to 'Show', book_path(book) %></td> <td><%= link_to 'Edit', edit_book_path(book) %></td> <td><%= link_to 'Destroy', books_path %></td> </tr> <% end %> </tbody> </table> </div> </div> <h2>New book</h2> <%= form_with model:@book, local:true do |f| %> <p>Title</p> <%= f.text_field :title %> <p>Body</p> <%= f.text_area :body %>

<%= f.submit 'Create Book' %>
<% end %>

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

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

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

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

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

guest

回答1

0

error文の通りだと思われます。
rails db:migrateは実行されましたでしょうか?
rails sの再起動を試してみてはどうでしょうか?

投稿2022/06/21 07:56

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問