Не удалось найти таблицу 'users'

ОБНОВЛЕНИЕ 4

См. решение ниже!

** Обновление 3 **

Если кто-то действительно все еще читает это (Я ценю это!) Сегодня я боролся с моим кодом (да, все еще новичок и в главе 11 учебника ruby ​​on rails).

Я предположительно вернулся к своей последней фиксации:

$ cd rails_screencast/sample_app/
$ git reset --hard 2396c0d288d132ffc43c82d5cbbc736a5258eed2
HEAD is now at 2396c0d Micropost Validations

Когда Я проверяю сайт на локальном хосте, на самом деле показывает список пользователей, а не страницу ОШИБКИ, но когда я запускаю набор тестов (автотест с spork - я тоже сбрасывал их несколько раз, чтобы быть уверенным), я все равно получаю все ошибки, подобные показанным ниже. Мне очень любопытно «Не удалось найти таблицу 'users'», поскольку она присутствует в КАЖДОЙ ошибке #

  108) Users signin success should sign a user in and out
     Failure/Error: user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/requests/users_spec.rb:56:in `block (4 levels) in <top (required)>'

Finished in 0.9872 seconds
108 examples, 108 failures

Пора продолжать подключать и рассматривать все эти ошибки, если кто-нибудь может предложить какие-либо идеи, подсказки или идеи, что делать проверьте я был бы признателен! Или, если вам нужна дополнительная информация, я могу опубликовать это тоже (просто укажите, какие файлы нужно просмотреть, поскольку я не совсем свободно говорю на жаргоне, как многие уже сейчас)

Обновление 2:

Кажется, что мой сброс испортил что-то с заводскими настройками, так как иногда все мои ошибки указывают на строку 5 моего файла micropost_spec.rb, в частности @ строку @user = Factory (: user) ... почти как мой файл фабрик не связан ни с чем Больше. Мне интересно, решит ли rake db: migrate какие-либо из моих проблем ... или просто создаст новые проблемы ... У меня есть только образцы данных, заполненные faker

Есть идеи?

Можно ли вернуть мои файловая система вернуться к предыдущей фиксации и начать заново? ... когда я был зеленым

Failures:

  1) Micropost should create a new instance with valid attributes
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

  2) Micropost user associations should have a user attribute
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

  3) Micropost user associations should have the right associated user
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

  4) Micropost validations should have a user id
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

  5) Micropost validations should require nonblank content
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

  6) Micropost validations should reject long content
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:5:in `block (2 levels) in <top (required)>'

Обновление 1:

Я получаю ошибки от 4 до 6 до 111, все с повторяющейся темой

 1) Micropost should create a new instance with valid attributes
     Failure/Error: @user = Factory(:user)
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/micropost_spec.rb:53:in `block (2 levels) in <top (required)>'

В частности, «Не удалось найти таблицу 'users'» - я скопировал код из учебника git для файла micropost_spec.rb, но, похоже, не исправил его - может быть, кто-нибудь может помочь мне указать, на что ссылается таблица?

//////////// ////////////////////////// ОРИГИНАЛ НИЖЕ ////////////////////// //////////

Я работаю на уроке 11 по Ruby on Rails Tutorial и пытаюсь заполнить свою базу данных, чтобы показать микросообщения

, когда я выполнил команду rake db: populate, которую он мне дал следующее:

    macbook:sample_app macbook$ rake db:populate
(in /Users/macbook/rails_screencast/sample_app)
db/test.sqlite3 already exists
db/test.sqlite3 already exists
db/development.sqlite3 already exists
-- create_table("microposts", {:force=>true})
   -> 0.0090s
-- add_index("microposts", ["user_id"], {:name=>"index_microposts_on_user_id"})
   -> 0.0074s
-- create_table("users", {:force=>true})
   -> 0.0243s
-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true})
   -> 0.0094s
-- initialize_schema_migrations_table()
   -> 0.0167s
-- assume_migrated_upto_version(20110614132314, "db/migrate")
   -> 0.0432s
rake aborted!
Validation failed: Email is invalid

Я запускал его пару раз и продолжал получать ту же ошибку ... когда я заходил на сайт в браузере, казалось, что никого из моих выборочных пользователей там не было ...

require 'faker'


namespace :db do 
  desc "Fill database with sample data"
  task :populate => :environment do
    Rake::Task['db:reset'].invoke
    admin = User.create!(:name => "Foo Bar",
                         :email => "foo@bar.com",
                         :password => "foobar",
                         :password_confirmation => "foobar")
   admin.toggle!(:admin)
    99.times do |n|
      name = Faker::Name.name
      email = "example-#{n+1}@railstutorial.org"
      password = "password"
      User.create!(:name => name,
                   :email => email,
                   :password => password,
                   :password_confirmation => password)
    end

    User.all(:limit => 6).each do |user|
      50.times do
        user.microposts.create!(:content => Faker::Lorem.sentence(5))
      end
    end
  end
end

тогда я решил, что, может быть, rake db: reset очистит мою базу данных с образцами, и я снова смогу запустить заполнение свежим материалом ... неверное предположение

теперь мой набор тестов показывает:

Finished in 0.99915 seconds
111 examples, 111 failures

Теперь, прежде чем я напортачу еще раз, я ищу совета где идти дальше ...

33
задан ROMANIA_engineer 15 December 2017 в 06:04
поделиться