ОБНОВЛЕНИЕ 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
Теперь, прежде чем я напортачу еще раз, я ищу совета где идти дальше ...