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

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

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

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

1225閲覧

Docker環境でのrails db:seedについて

mika2002

総合スコア20

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/05/23 14:28

rails db:seed,seeds.rbのことについて質問させて下さい、、

現在、Docker環境でrails でAPIを作り、curlコマンドでデータが取得できるまでを確認しつつ進めていっているのですが、

docker-compose exec api bash

でコンテナに入り?
rails db:seedを行い、

curl http://localhost:3000/users

とすることで、
[{“id”:1,“name”:“ben”,“email”:null,“created_at”:“2020-05-23T13:52:04.636Z”,“updated_at”:“2020-05-23T13:52:04.636Z”},{“id”:2,“name”:“michal”,“email”:null,“created_at”:“2020-05-23T13:52:04.640Z”,“updated_at”:“2020-05-23T13:52:04.640Z”},
[{“id”:1,“name”:“ben”,“email”:null,“created_at”:“2020-05-23T13:52:04.636Z”,“updated_at”:“2020-05-23T13:52:04.636Z”},{“id”:2,“name”:“michal”,“email”:null,“created_at”:“2020-05-23T13:52:04.640Z”,“updated_at”:“2020-05-23T13:52:04.640Z”}
といったように、Docker環境での正しい方法がわからず、rails db:seedを2回してしまった為重複はしてしまっているのですが、データを取得できています。

しかし、ここでわからないのが、
なぜかdb/seeds.rbでuserとpostをデータ登録しているのですが

ruby

12User.create!( 3 [ 4 { 5 name: 'ben' 6 }, 7 { 8 name: 'michal' 9 } 10 ] 11) 1213Post.create!( 14 [ 15 { 16 content: '家事' 17 }, 18 { 19 content: '散歩' 20 } 21 ] 22)

postの方は、
curl http://localhost:3000/posts
としても取得できずに、rails consoleで確認しても、postだけデータが入っていません、、
半日、考えているのですがどう対処すれば良いのかわからない状態です、、
アドバイス頂けると嬉しいです。

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

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

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

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

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

unoSSkR

2020/05/24 02:24 編集

Its not answer to your question, but you make sure there are no problems running seed files multiple times. For example: user_data=[['ben'],['michael']] user_data.each do |name| user = User.find_by_name(name) User.create!(:name=> "#{name}") if user.nil? end assuming that user name is unique.
mika2002

2020/05/24 02:41

Thank you so much for your response! sorry, sir, but I need to know. What is this line doing? I was able to understand about the rest of the line. > User.create!(:name=> "#{name}") if user.nil? sorry, I'm not familiar with English. Thank you very much.
unoSSkR

2020/05/24 03:21

Simple ruby coding. Learn more and ask another question if you can't.
guest

回答2

0

自己解決

こちらの質問については、Docker環境でのDBの扱いについて私が理解できていなかった事が原因で、

docker-compose down --rmi all --volumes
等をして、完全に削除?
してから再度
docker-compose build
docker-compose up

とすることで、新しいseeds.rbを読み込ませる事ができました。
が、これに関連してまた新しい疑問が出てきたので、他の質問を投稿したいと思います。

投稿2020/05/24 02:45

mika2002

総合スコア20

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

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

0

こちらの質問については、Docker環境でのDBの扱いについて私が理解できていなかった事が原因で、

docker-compose down --rmi all --volumes
等をして、完全に削除?
してから再度
docker-compose build
docker-compose up

とすることで、新しいseeds.rbを読み込ませる事ができました。

投稿2020/05/24 02:44

mika2002

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問