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

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

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

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

Q&A

解決済

1回答

269閲覧

railsの基本演習の中で、どうしてもデータベースの作成、テーブルの作成が出来なく・・・エラーも出て困っています。

helo

総合スコア36

Ruby on Rails 5

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

0グッド

0クリップ

投稿2018/11/30 06:50

編集2018/11/30 08:53

###前提・実現したいこと

現在、とある「Ruby on Rails」の基礎学習本にてモックアップサイト構築をしようとしている初心者です。
その中で、データベース作成、テーブルの作成、seedデータの投入がどうしても上手く行かず何度かやり直している内に、更におかしくなって困り果てています。

先ず、consoleで、$ bin/rails db:createを行うとdb/seeds/developmentの下にdevelopment.sqlite3、test.sqlite3の2つのファイルができるのですが、development.sqlite3ファイルには何も入っていない空の状態です。
エディターはAtomを使用しているのですが、左にあるディレクトリ/ファイルツリーのこの2つのファイル表記名がグレー色の半透明(?)になっています。これで良いのでしょうか?

それから、モデルを作成してマイグレーションを行うのですが、ブラウザ上に
ActiveRecord::PendingMigrationErrorが出てきてしまいます。resetしたりして
何度かトライしているのですが、エラーが消えません。
ネットで検索し、同様のエラーでの相談内容等も確認したのですが、どうにも直りません。

一体、どのようにすれば解決できるのでしょうか。
ご教示いただけますと有難いです。
よろしくお願いします。

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

コマンドでは、以下のような2か所にエラーが出ています。

==20181130034437 CreateMembers: migrating================ --create_table(:members) --false               () rails aborted! StandardError: An error has occurred, this and all later migrations canceled:                  (省略)                      Caused by: NameError: undefined local variable or method 'false

該当のソースコード


●以下、controllerディレクトリのコードです。

class MembersController < ApplicationController
def index
@members = Member.order("number")
end

●以下、db/migrateファイルです。

class CreateMembers < ActiveRecord::Migration[5.2]
def change
create_table :members do |t|
t.integer :number, null: false # 背番号
t.string :name, null: false               #ユーザー名
t.string :full_name            #本名
t.string :email #メールアドレス
t.date :birthday #生年月日
t.integer :sex, null: false, default: 1 #性別(1:男、2:女)
t.boolean :administrator, null: false, default: false #管理者フラグ
t.timestamps
end
end
end

●以下、db/seeds/seeds.rb

table_names = %w(members)
table_names. each do |table_name|
path = Rails.root.join("db/seeds", Rails.env, table_name + ".rb")
if File. exist?(path)
puts "Creating #{table_name}..."
require path
end
end

### 試したこと 学習本に沿って、 $ bin/rails db: create ⇒ $ bin/rails g model member ⇒  $ bin/rails db: migrate ⇒  ブラウザでエラー状態です。 seedデータを開発用データベースに入れようとしましたが 全く入りません。(上記のエラーがなくならないとダメかとは思っています) ### 補足情報(FW/ツールのバージョンなど) Windowsにて、Atom使用

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/11/30 06:55

該当のソースコードを見せてください
helo

2018/11/30 08:34

buta_bottii様 ご連絡ありがとうございます。 ソースコードはどのファイルのものをお送りすれば良いでしょうか。超初心者でして何をお送りすればよいか判断が出来ません。すいません。
退会済みユーザー

退会済みユーザー

2018/11/30 08:43

db/migrate/12345678910111_create_members.rbのようなファイルですかねー、多分。
helo

2018/11/30 08:56

こちらのコードで良かったでしょうか・・
退会済みユーザー

退会済みユーザー

2018/11/30 08:58

ちょっと原因が見当たらないですねぇ...。どこかの false がメソッドや変数だと認識されてるみたいなので false と書いてある場所を探しておかしなところがないか確認してみてください。
helo

2018/11/30 09:04

ご指摘ありがとうございます。ファイルが色々あって、順に進めていたのですが気が付くとエラーが出る状態になっていました。まずは、falseをチェックしてみます。
helo

2018/11/30 09:19

migrateコードのユーザー名のfalseがおかしかったです。修正したのですが、やはりエラーはそのままです。このような場合どのファイルに原因があったりするのでしょうか。。
guest

回答1

0

ベストアンサー

db/seeds/seeds.rbとありますが、これはデフォルトであったものですか?

投稿2018/12/02 15:56

編集2018/12/02 15:59
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

helo

2018/12/04 11:31

BigeastTtexan様 ご連絡ありがとうございます。 すいません、こちらはフォルダを表示をしただけです。ややこしくて申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問