0

michael hartl のチュートリアルの第 10 章でマイクロポスト モデルを作成しようとしていますが、rspec テストを通過できません。

これが私がやったことです:

  1. rails generate model Micropost content:string user_id:integer

  2. rm -f spec/factories/microposts.rb

これは、db 移行ファイルです。

class CreateMicroposts < ActiveRecord::Migration
  def change
    create_table :microposts do |t|
      t.string :content
      t.integer :user_id

      t.timestamps
    end
    add_index :microposts, [:user_id, :created_at]
  end
end

これはマイクロポストのモデル仕様です:

require 'spec_helper'

describe Micropost do

  let(:user) { FactoryGirl.create(:user) }
  before do
    # This code is not idiomatically correct.
    @micropost = Micropost.new(content: "Lorem ipsum", user_id: user.id)
  end

  subject { @micropost }

  it { should respond_to(:content) }
  it { should respond_to(:user_id) }
end

そして、私はしました:

  1. bundle exec rake db:migrate

  2. bundle exec rake test:prepare

私のエラーメッセージは次のとおりです。

1) Micropost
     Failure/Error: @micropost = Micropost.new(content: "Lorem ipsum", user_id: user.id)
     ActiveRecord::StatementInvalid:
       Could not find table 'microposts'
     # ./spec/models/micropost_spec.rb:8:in `new'
     # ./spec/models/micropost_spec.rb:8:in `block (2 levels) in <top (required)>'

2) Micropost
     Failure/Error: @micropost = Micropost.new(content: "Lorem ipsum", user_id: user.id)
     ActiveRecord::StatementInvalid:
       Could not find table 'microposts'
     # ./spec/models/micropost_spec.rb:8:in `new'
     # ./spec/models/micropost_spec.rb:8:in `block (2 levels) in <top (required)>'

スキーマ

ActiveRecord::Schema.define(:version => 20130801225814) do

  create_table "users", :force => true do |t|
    t.string   "name"
    t.string   "email"
    t.datetime "created_at",                         :null => false
    t.datetime "updated_at",                         :null => false
    t.string   "password_digest"
    t.string   "remember_token"
    t.boolean  "admin",           :default => false
  end

  add_index "users", ["email"], :name => "index_users_on_email", :unique => true
  add_index "users", ["remember_token"], :name => "index_users_on_remember_token"

end

第10章の手順を正確に実行したと確信しているため、問題を理解できません。もしかして前からあるのかな?

助けてくれてありがとう!

4

1 に答える 1