【发布时间】:2025-12-09 15:05:01
【问题描述】:
我是 RoR 的新手,过去几天一直在努力设置我的环境(运行 Mountain Lion)。当我看到this lesson 时,我终于达到了可以开发并决定在 lynda.com 上开始试用的地步。
到目前为止,学习 Rails 的原理和理论非常棒,但它是在 2010 年制作的,我发现 Rails 的主要版本之间有多少变化。例如,生成的 项目不再包含脚本文件夹 - 这些只是使用 Mac 命令行中的 rails 命令调用。
上一课,导师生成了一个新的rails项目,添加了一个控制器:
class SayController < ApplicationController
def hello
end
end
并添加了一个视图(视图 -> 说 -> ['hello.rhtml'])
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
就是这样。接下来,他刚刚启动了 rails 服务器,跳转到 Firefox,并输入了地址[http://localhost:3000/say/hello]。浏览器如您所愿显示文本“Hello World”。
但是,我得到“没有路线匹配 [GET] '/say/hello'”。我知道这是路线的问题,我只是找不到一个好的(和 RoR 4 特定的)用法解释。
在指导者项目中,默认情况下似乎使一切都能正常工作的行是:
map.connect ':controller/:action/:id'
我尝试添加它(我的 routes.rb 是在所有注释掉的情况下生成的),但它不起作用,我认为 RoR 4 约定不同。
那么 RoR 4 有默认路由吗? v4 是否不允许返回 null 或语法已更改的操作?
错误页面显示我当前的路线是Rails.root: /Users/abcde/Sites/RoR/my_app/,这是我运行rails 服务器的地方,所以我不确定这是否重要。
路由跟踪和日志只是重申我的路由 (/say/hello/) 不存在),但如果需要,我可以发布它们。
【问题讨论】:
-
*.rhtml 似乎也很旧。通常,视图具有扩展名 *.html.erb。如果您正在寻找 Rails4 的帮助或文档,请查看:edgeguides.rubyonrails.org 或特别是 edgeguides.rubyonrails.org/routing.html 以获取路线。
标签: ruby-on-rails ruby routes ruby-on-rails-4