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

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

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

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

Q&A

解決済

1回答

1530閲覧

rails db:seed時のエラー

jus

総合スコア60

Ruby on Rails 6

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

0グッド

0クリップ

投稿2022/05/20 11:24

編集2022/05/20 13:03

rails db:seedを行ったとき、
rails aborted!
ActiveModel::UnknownAttributeError: unknown attribute 'name' for Category.
C:/Users/mario/Desktop/wario/db/seeds.rb:12:in block in <main>' C:/Users/mario/Desktop/wario/db/seeds.rb:11:in <main>'
というエラーが出ます。

解決方法が分かる方、ご教授お願いします。

一番下の画像のcategory.csvファイルを適用させたいです。

前提

ここに質問の内容を詳しく書いてください。
(例)
rails で投稿アプリを作っています。
カテゴリー機能を実装中、rails db:seedを行ったとき、以下のエラーメッセージが発生しました。
category.csvファイルはdbフォルダに入れてます。

実現したいこと

エラーの解決
category.csvファイルを適用させたいです。

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

rails aborted! ActiveModel::UnknownAttributeError: unknown attribute 'name' for Category. C:/Users/mario/Desktop/wario/db/seeds.rb:12:in `block in <main>' C:/Users/mario/Desktop/wario/db/seeds.rb:11:in `<main>'

該当のソースコード

カテゴリーモデル class Category < ApplicationRecord has_many :posts has_ancestry end
マイグレーションファイル class CreateCategories < ActiveRecord::Migration[6.1] def change create_table :categories do |t| t.string :name, index: true, null: false t.string :ancestry, index: true t.timestamps end end end
seeds.rb require "csv" CSV.foreach('db/category.csv') do |row| Category.create(:id => row[0], :name => row[1], :ancestry => row[2]) end
schema.rb create_table "categories", force: :cascade do |t| t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end
適用させたいcategory.csvファイル 1,バトル 2,アクション 3,冒険 4,ファンタジー 5,SF 6,恋愛・ラブコメ 7,スポーツ 8,ミステリー・サスペンス・ギャンブル 9,少女・女性 10,ギャグ・コメディ 11,成人

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

https://qiita.com/iwkmsy9618/items/815db7d6f1b4b230644d
こちらの記事を参考にさせていただいています。

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

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

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

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

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

winterboum

2022/05/20 11:39

code 読む気が起きない。textで貼り直して下さい
guest

回答1

0

ベストアンサー

マイグレーションファイル の内容と schema.rb の内容が一致しません。
もしかしたら、一度rails migrationを実行した後で マイグレーションファイルを修正していませんか?

投稿2022/05/20 13:13

winterboum

総合スコア23329

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

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

jus

2022/05/20 13:27

その記憶があります笑 その場合どのようにしてなおしたらいいのでしょうか
winterboum

2022/05/20 14:11

方法は3つあります。 大したデータが入っておらず、最初から作り直しで良いのなら、db:drop し、 db:create し db:migrate します category のmigration file が最後なら、db:rollback し db:migrate します。これは最後が create tableなのでできます。 Railsの正規なやり方は(まず今のmigration file を元の形になおしてから)新しいmigration fileをつくり、そこで add_column します。 rollback
jus

2022/05/20 14:22

ありがとうございます! schemaが以下の通りになりました。 create_table "categories", force: :cascade do |t| t.string "name", null: false t.string "ancestry" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["ancestry"], name: "index_categories_on_ancestry" t.index ["name"], name: "index_categories_on_name" end 改めてrails db:seedをしたのですが、 C:\Users\mario\Desktop\sentinel>rails db:seed C:\Users\mario\Desktop\sentinel> このようになります。 これはcategory.csvが反映されているということなのでしょうか?
jus

2022/05/21 06:32 編集

解決できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問