2011-11-28 65 views
0

嗨,这是ROR初学者的问题。 我创建了controller.rb并查看了教程后的hello.rhtml,但是当我尝试打开localhost:3000/say/hello时,它出现了错误:没有路由匹配[GET]“/ say/hello”错误的轨道3

可以任何一个建议吗?

+0

什么教程?你能发布你的路线文件吗? – Mischa

+0

本教程来自Lynda.com,有点旧,可能是2008,router.rb只有两个roll:myapp :: Application.routes.draw。然后结束。 – Wayneinnz

回答

0

那么你需要为你的config/routes.rb文件设置一个路由。 对于第一次尝试,我会说使用脚本生成器,在命令行上输入为在项目库>rails g controller helloworld index。这将为自己创建一个路径,并创建一个控制器文件。 这个脚本运行后,应该有你的config /线的routes.rb

Cloud::Application.routes.draw do 
    get "helloworld/index" 
end 

然后,你需要在浏览器地址栏输入localhost:3000/helloworld/index。然后(默认)rails将呈现位于app/views/helloworld/index。*中的视图。如果你想改变这种行为,请转到helloworld控制器。 欲了解更多信息,这里有一个有用的指导:ROUTING GUIDES

+0

我已经这样做了,并且router.rb在那里。但仍得到相同的信息。请尝试其他任何事情吗? – Wayneinnz

+0

1.你的routes.rb中有什么? 2.您在浏览器网址字段中输入了什么内容? – p1100i

+0

router.rb是myapp :: Application.routes.draw。然后结束。我在浏览器上的URL是:http:// localhost:3000/say/hello – Wayneinnz

0

您需要定义一个路由定义,以便将您请求的URL映射到您创建的将呈现hello.rhtml的控制器中的操作。说你的控制器名称是say_controller.rb(即Rails如何提供文件名)。在这种情况下,如果您定义并操作hello(默认情况下呈现hello.rhtml),那么在最后routes.rb文件中定义的fallback routes将向say/hello发出请求以查找和hello操作,从而呈现hello的.rhtml。

有关详细帮助,请参阅Rails Guides。有很多有用的材料,这很好解释。

+0

你可以让我知道该怎么做,请。 – Wayneinnz

+0

即使您的routes.rb中的默认路由定义丢失,您也可能会丢失。你可以在routes.rb的do-end块中添加match':controller(/:action(/:id))',然后检查。 –

+0

只是尝试它,现在得到了不同的消息:模板丢失,缺少模板说/你好 – Wayneinnz

0

我最近开始开发RoR,我得到的最佳实践是教程@轨道僵尸和视频的@ railscasts。我建议你看一些/做一些,你会得到一个大概的想法如何开始:)

-edit-在这个问题上:你试图呈现来自say控制器的hello视图。 由于在默认情况下处理路由:controller /:action,你说有一个叫做hello的动作吗?没有行动意味着没有路线意味着没有视图呈现

class SayController < ApplicationController 

    def hello 
    #do nothing or add some code 
    logger.debug "I'm in the say controller, hello action!" 
    end 

end 

这应该让它呈现hello文件。尽管你可能想看看restful actions/crud,但rails默认使用这些。

+0

嗨,谢谢你,在我完成从Lynda.com那里得到的一个后,我会试试它。是你建议免费还是必须付费的那个? – Wayneinnz

+0

它的完全免费:)有一些付费视频和付费教程,但如果你越来越知道铁轨是伟大的免费试用和学习的基础知识。如果你愿意,你可以付费购买先进的东西,但要了解MVC结构以及路由如何在免费的轨道上处理。 – Vikko

+0

我已经通过了Lynda Rails教程。它对我有很大的帮助,但是他在教程中做了很多事情,都是过时的。我建议你去http://ruby.railstutorial.org/并检查。这是关于Rails 3的一个很好的教程,它是免费的。 – PhillipKregg