2011-03-23 127 views
0

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

下面是我的控制器:

class SayController < ApplicationController 
    def hello 
    end 
    def goodbye 
    end 
end 

我的观点:

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

你有没有设置路由到say控制器? – Ingo 2011-03-23 19:00:15

回答

1

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

3

您应该删除public/index.html文件,因为这会与您的路由选择混淆并默认显示。您是否已经设置了路线,模板的确切位置和文件名是什么?

你需要在你的config/routes.rb中文件类似,以正确地路由该网址到您的模板/视图:

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

好吧,我删除了public/index.html文件,让我更接近一点。我的config/routes.rb文件显示在下面。我必须设置路线吗?我认为这已经为我完成了,我的教程并不明确。 – johnnewbie 2011-03-23 19:13:44

+0

对不起,我没有看到任何路径文件,您是否忘记包含它? :-) – Bitterzoet 2011-03-23 21:15:41

1

回答你的问题,特别是由Bitterzoet已经回答了,但我认为你可能需要一些替代学习资源。

我不确定你开始使用哪个教程,但我觉得奇怪的是他们没有使用REST风格的路线。您可以通过转到控制台并键入“rake routes”来找出您目前设置的路线。如果你想要一个不同的教程,我建议在这里: http://www.wiki.devchix.com/index.php?title=Rails_3_Curriculum

我也推荐http://railsforzombies.org/作为一个很好的第一次导轨体验。

1

一个有趣的一般行添加到config /路线是:

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

在开发,这将允许你以显示地址栏控制器/行动ALL控制器/动作/ id.format等。

像Bitterzote写道,如果控制器是“说”和行动是“你好”,http://localhost:3000/say/hello。 如果您使用控制器“说”并采取行动“移动”,http://localhost:3000/say/move

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