ОБНОВЛЕНИЕ 4
См. решение ниже!
** Обновление 3 **
Если кто-то на самом деле все еще читает это (я ценю это!), я сегодня борюсь с моим кодом (да все же нооб и в главе 11 рубинового руководства по рельсам).
Я предположительно reset вернулся к своему последнему фиксации:
$ cd rails_screencast/sample_app/
$ git reset --hard 2396c0d288d132ffc43c82d5cbbc736a5258eed2
HEAD is now at 2396c0d Micropost Validations
Когда я проверяю сайт на локальном хосте, он фактически показывает список пользователей, а не страницу ERROR, но когда я запускаю тестовый набор (автотест со spork - у меня есть reset те несколько раз тоже, чтобы быть уверенным) Я все еще получаю все ошибки, подобные приведенным ниже. Мне очень любопытно, что "Не удалось найти пользователей таблицы", как это происходит в КАЖДОЙ ошибке #
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:
Похоже, что мой reset что-то испортил с настройками factory, поскольку иногда все мои ошибки указывают на строку 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)>'
В частности, "Не удалось найти пользователей таблицы" "- я скопировал код из учебника git для файла micropost_spec.rb, но, похоже, не исправил его - возможно, кто-то может помочь мне направить таблицу ссылается на?
//////////////////////////////////////ORIGINAL BELOW////////////////////////////////
Я работаю в уроке 11 учебного курса Ruby on Rails и пытаюсь заполнить свой db, чтобы показать микропосты
когда я выполнил команду 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 => "[email protected]",
: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
Теперь, прежде чем я начну использовать больше вещей, я ищу совет, куда идти дальше...