Руководство по Ruby-on-Rails для статической страницы - PullRequest
2 голосов
/ 24 ноября 2010

Я перебираю учебное пособие по Ruby-on-Rails, и у меня возникла сбивающая с толку проблема, которую я не могу понять. Я получил rspec и работал со spork, и это похоже на отличную систему. Однако в первом тесте я столкнулся с чем-то просто безумным. В книге говорится, что нужно создать несколько статических страниц, называемых home и contact, а затем я узнаю, как создать статическую страницу, работающую с базой данных rspec. Поэтому я создаю красную спецификацию для страницы about

  describe "GET 'about'" do
    it "should be successful" do
      get 'about'
      response.should be_success
    end
  end

Это не так, как ожидалось. Затем я добавляю маршрут к файлу route.rb

get "pages/about"

Контроллер в файле pages_controller.rb, который добавляет контроллер.

def about
end

Я добавляю очень простую статическую веб-страницу для страницы about.

В книге написано, что после выполнения этого теста должен быть зеленый или пройти тесты. Это не так. По-настоящему удивляет то, что я могу открыть простую веб-страницу, набрав адрес.

http://localhost:3000/pages/about

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

Наконец я в отчаянии подумал, что попробую задать вопрос. Это кажется очень простым, но так как я читаю эту книгу, чтобы изучить систему, я действительно не знаю, с чего начать.

Ответы [ 3 ]

3 голосов
/ 28 ноября 2010

Когда вы меняете файл rout.rb, вам нужно перезапустить spork.

0 голосов
/ 16 марта 2011

Мне нравится запускать сервер ("rails s") в его собственном окне iTerm, а я набираю / редактирую код в другом.Если у вас работает сервер, он должен показать вам запрошенный URL-адрес, который не работает, поскольку создается его журнал.Может быть полезно увидеть, что на самом деле запрашивается.

0 голосов
/ 24 ноября 2010

во-первых, не беспокойтесь о том, чтобы задавать новые вопросы здесь. Единственное правило переполнения стека заключается в том, что вам не следует задавать точные дубликаты существующих вопросов:)

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

describe "GET 'about'" do
  it "should be successful" do
    get 'about'
    puts response.inspect
    response.should be_success
  end
end

(inspect - это способ заставить объекты выводить что-то более значимое, чем их расположение в памяти)

Если вывод не проливает свет на проблему, попробуйте добавить ее в свой пост, и, возможно, мы поможем вам разобраться

...