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

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

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

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

Ruby

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

Ruby on Rails

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

Q&A

解決済

2回答

635閲覧

rails db:seedでcsvデータをデータベースに挿入したい

runes224

総合スコア14

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

0グッド

2クリップ

投稿2019/06/09 10:38

前提・実現したいこと

rails db:seedでデータ挿入を完了させたい。

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

csvデータを初期登録データとしてIngredientモデルに挿入したい。rails db:seedでデータ挿入をしたときに、nameカラムにのみデータが入らない(他のデータは全て入る)。実行時に特にエラーは発生しなかった。

Ingredientモデル

ruby

1class Ingredient < ApplicationRecord 2end

seeds.rb

ruby

1require 'csv' 2 3CSV.foreach('db/食品成分インポート用2.csv', headers: true).each do |row| 4 ingredient = Ingredient.create!( 5 name: row['name'], 6 group: row['group'], 7 calorie: row['calorie'], 8 carbohydrate: row['carbohydrate'], 9 protein: row['protein'], 10 lipid: row['lipid'], 11 salt: row['salt'], 12 ) 13 end 14end

schema.rb

ruby

1ActiveRecord::Schema.define(version: 2019_06_09_081831) do 2 3 enable_extension "plpgsql" 4 5 create_table "ingredients", force: :cascade do |t| 6 t.string "name" 7 t.integer "group" 8 t.float "calorie" 9 t.float "carbohydrate" 10 t.float "protein" 11 t.float "lipid" 12 t.float "salt" 13 t.datetime "created_at", null: false 14 t.datetime "updated_at", null: false 15 end 16 17 create_table "users", force: :cascade do |t| 18 t.string "name" 19 t.string "email" 20 t.datetime "created_at", null: false 21 t.datetime "updated_at", null: false 22 t.string "password_digest" 23 end 24 25end

食品成分インポート用4.csv

csv

1name,group,calorie,carbohydrate,protein,lipid,salt 2えんばく・オートミール,1,380,69.1,13.7,5.7,0 3おおむぎ・七分つき押麦,1,341,72.1,10.9,2.1,0 4おおむぎ・押麦,1,340,77.8,6.2,1.3,0 5おおむぎ・米粒麦,1,343,76.2,7,2.1,0 6おおむぎ・大麦めん・乾,1,339,68,12.9,1.7,2.8 7おおむぎ・大麦めん・ゆで,1,122,24.3,4.8,0.6,0.2 8おおむぎ・麦こがし,1,391,77.1,12.5,5,0 9きび・精白粒,1,363,70.9,11.3,3.3,0 10こむぎ・国産・普通,1,337,72.2,10.6,3.1,0 11こむぎ・輸入・軟質,1,348,75.2,10.1,3.3,0 12こむぎ・輸入・硬質,1,334,69.4,13,3,0 13こむぎ・薄力粉・1等,1,367,75.8,8.3,1.5,0 14こむぎ・薄力粉・2等,1,368,74.3,9.3,1.9,0 15こむぎ・中力粉・1等,1,367,75.1,9,1.6,0 16こむぎ・中力粉・2等,1,368,74,9.7,1.8,0 17こむぎ・強力粉・1等,1,365,71.7,11.8,1.5,0 18こむぎ・強力粉・2等,1,366,70.6,12.6,1.7,0 19こむぎ・強力粉・全粒粉,1,328,68.2,12.8,2.9,0 20* 21* 22*

試したこと

  • docker-compose reset
  • csvデータに問題ないかを確認した

環境

  • Docker version 18.09.2
  • docker-compose version 1.23.2
  • ruby 2.5.5
  • Rails 5.2.3

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

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

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

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

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

guest

回答2

0

ベストアンサー

logは見てみましたか? rake db:seed の結果もlogに書かれますから、それを見れば原因が判るかもしれません。

投稿2019/06/09 17:22

winterboum

総合スコア23347

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

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

runes224

2019/06/14 21:18

logを確認すると文字コードのエラーだと判明しました。ありがとうございます!!!
guest

0

seedファイルの

ruby

1name: row['name']

ruby

1name: "#{row['name']}"

としてみてもダメでしょうか??

投稿2019/06/09 11:52

nekotter222

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問