导航到http:// localhost:3000 / say / hello时的空白页面

时间:2011-03-23 18:57:09

标签: ruby-on-rails

我是Ruby on Rails的新手,我正在做我的第一个教程,并且正在运行最新版本的rails 3和ruby 1.9.2。创建我的控制器并导航到http://localhost:3000/say/hello后,我收到一个空白页面。当我转到http://localhost:3000时,我确实看到了欢迎使用Rails的消息。我做了一些谷歌搜索,人们有类似的问题,但没有明确的解决方案。我之前从未真正使用过MVC,所以路由的概念对我来说是相当新的。

以下是我的控制器:

class SayController < ApplicationController
  def hello
  end
  def goodbye
  end
end

我的观点:

<h1>Say hello to Rails!</h1>

4 个答案:

答案 0 :(得分:3)

您应该删除public / index.html文件,因为默认情况下会破坏您的路由和显示。您是否已经设置了路线,模板的确切位置和文件名是什么?

您需要在config / routes.rb文件中使用类似的方法将该网址正确地路由到您的模板/视图:

match '/say/hello' => 'say#hello'

答案 1 :(得分:1)

首先从公用文件夹中删除index.html文件。然后,转到app / views并检查say控制器的视图。你应该有一个hello.html.erb。

答案 2 :(得分:1)

Bitterzoet已经回答了您的具体问题,但我认为您可能需要一些替代学习资源。

我不确定你开始使用哪个教程,但我发现他们没有使用RESTful路由很奇怪。您可以通过进入控制台并键入“rake routes”来了解您当前设置的路线。如果您想要一个不同的教程,我建议在这里: http://www.wiki.devchix.com/index.php?title=Rails_3_Curriculum

我还建议http://railsforzombies.org/作为首次出色的铁路体验。

答案 3 :(得分:1)

添加到配置/路由的有趣的一般行是:

match ':controller(/:action(/:id(.:format)))'

在开发过程中,这将允许您在地址栏中显示所有控制器/操作/ id.format等的控制器/操作。

像Bitterzote写的那样,如果控制器是“说”并且动作是“你好”,http://localhost:3000/say/hello。 如果你使用控制器“说”和动作“移动”,http://localhost:3000/say/move

我发现这条路线在开发过程中非常有用,但如果启动应用程序,请更改此路线! (Rails警告:“注意:此路由将使每个控制器中的所有操作都可通过GET请求访问。”)