嗨,这是ROR初学者的问题。 我创建了controller.rb并查看了教程后的hello.rhtml,但是当我尝试打开localhost:3000/say/hello时,它出现了错误:没有路由匹配[GET]“/ say/hello”错误的轨道3
可以任何一个建议吗?
嗨,这是ROR初学者的问题。 我创建了controller.rb并查看了教程后的hello.rhtml,但是当我尝试打开localhost:3000/say/hello时,它出现了错误:没有路由匹配[GET]“/ say/hello”错误的轨道3
可以任何一个建议吗?
那么你需要为你的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
您需要定义一个路由定义,以便将您请求的URL映射到您创建的将呈现hello.rhtml的控制器中的操作。说你的控制器名称是say_controller.rb(即Rails如何提供文件名)。在这种情况下,如果您定义并操作hello(默认情况下呈现hello.rhtml),那么在最后routes.rb文件中定义的fallback routes
将向say/hello
发出请求以查找和hello
操作,从而呈现hello的.rhtml。
有关详细帮助,请参阅Rails Guides。有很多有用的材料,这很好解释。
我最近开始开发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默认使用这些。
嗨,谢谢你,在我完成从Lynda.com那里得到的一个后,我会试试它。是你建议免费还是必须付费的那个? – Wayneinnz
它的完全免费:)有一些付费视频和付费教程,但如果你越来越知道铁轨是伟大的免费试用和学习的基础知识。如果你愿意,你可以付费购买先进的东西,但要了解MVC结构以及路由如何在免费的轨道上处理。 – Vikko
我已经通过了Lynda Rails教程。它对我有很大的帮助,但是他在教程中做了很多事情,都是过时的。我建议你去http://ruby.railstutorial.org/并检查。这是关于Rails 3的一个很好的教程,它是免费的。 – PhillipKregg
什么教程?你能发布你的路线文件吗? – Mischa
本教程来自Lynda.com,有点旧,可能是2008,router.rb只有两个roll:myapp :: Application.routes.draw。然后结束。 – Wayneinnz