###前提・実現したいこと
現在、とある「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使用
回答1件
あなたの回答
tips
プレビュー