У меня есть Page scaffold, который я создал с помощью рельсов, создающих леса. Я запустил rake db: migrate, и просмотр базы данных через SQLite Database Browser показывает, что она действительно существует. Я могу перейти к консоли рельсов и запустить:
Page.all.each {|page| puts page.url}
Когда я запускаю это, он фактически возвращает правильные результаты (например, значение url для каждой записи страницы.
То, что я пытаюсь сделать, это настроить тест rspec в моем тесте контроллера страниц, чтобы увидеть, что каждый из маршрутов, которые я настроил в config / rout.rb, действительно работает. Итак, у меня есть тест, определенный в spec / controllers / pages_controller_spec.rb следующим образом:
describe PagesController do
Page.all.each do |page|
describe "GET /#{page.url}" do
it "should be able to get at page at #{page.url}" do
get "/#{page.url}"
response.should be_successful
end
end
end
end
Этот тест не запускается. Вместо этого он генерирует следующее сообщение:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `rescue in log': SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages" (ActiveRecord::StatementInvalid)
Кто-нибудь знает, что происходит? Или, в качестве альтернативы, кто-нибудь знает, почему это будет работать в моей Rails Console, но не в моих тестах rspec?
Большое спасибо. Я относительно новичок в Rails, поэтому все еще многому учусь!