我是 RoR 的新手,过去几天一直在努力设置我的环境(运行 Mountain Lion)。当我看到这节课时,我终于达到了可以发展的地步,并决定在 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/)不存在),但如果需要,我可以发布它们。