Ruby-on-Rails静态页面教程

时间:2010-11-23 23:57:38

标签: ruby-on-rails rspec routing

我正在阅读Ruby-on-Rails教程书,我遇到了一个令人困惑的问题,我无法弄明白。我得到了rspec并使用spork运行,它看起来像一个很棒的系统。然而,在第一次测试中,我遇到了一些疯狂的事情。这本书说要创建一些名为home和contact的静态页面,然后它会指导我如何创建一个运行rspec的DBB的静态页面。所以我为about page

创建了红色规范
  describe "GET 'about'" do
    it "should be successful" do
      get 'about'
      response.should be_success
    end
  end

这按预期失败。然后我添加一个路由到routes.rb文件

get "pages/about"

添加控制器的pages_controller.rb文件的控制器。

def about
end

我为about页面添加了一个非常简单的静态网页。

这本书说,做完这个测试后应该是绿色的,或通过测试。它没有。真正令人困惑的是,我实际上可以通过输入地址来打开简单的网页。

http://localhost:3000/pages/about

我已经尝试将'about'更改为'home',这样我基本上可以运行两次home测试。这工作正常,所以我知道没有语法问题。我改变了一切,以便我看到测试在不同的点上失败了。

我终于,我们绝望地想到我会尝试提问。这看起来很基本,但是因为我正在读这本书来学习系统,所以我真的不知道从哪里开始寻找。

3 个答案:

答案 0 :(得分:3)

更改routes.rb文件时,需要重新启动spork。

答案 1 :(得分:0)

首先,不要担心在这里问问菜鸟问题。堆栈溢出中唯一的规则是你不应该问现有问题的确切重复:)

我没有看到你做了什么特别错误。我会尝试在断言行上面添加一个调试语句

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

(inspect是一种让对象输出比它们在内存中的位置更有意义的东西的方法)

如果输出没有真正解决问题,请尝试将其添加到您的帖子中,也许我们可以帮助您解决问题

答案 2 :(得分:0)

我喜欢在它自己的iTerm窗口中启动服务器(“rails s”),然后在另一个窗口中键入/编辑代码。如果您正在运行服务器,它应该显示所请求的URL失败,因为它生成了日志。可能有助于了解实际要求的内容。