新手问题 看 RoR 教程对 routes.rb 的一个疑问,解析不正确但是应用却好使

hanyangwang · 2015年03月19日 · 最后由 hanyangwang 回复于 2015年03月19日 · 1985 次阅读

这两天买了 Wiki 里推荐的 Ruby on Rails 教程,然后也一直在一步一步对着练习。 但是第七章却遇到了一个问题,我给 routes.rb 增加了 resources :users 这条语句,那按照书上的说明,我理解是我输入 example.com/users 就应该可以进入注册的界面啊(我看截图也是如此)。 但是我如果输入 /users 却不好使,提示我 The action 'index' could not be found for UsersController 但是输入 /signup 都一切好使,可以顺利注册新用户。 和书上对了好几遍的代码,没有发现问题啊,请问这可能是什么原因导致的呢。

你输入 example.com/users ,执行的是 GET 请求,自然是映射到 index action。 但是你 signup 的时候,是对 example.com/users 执行 POST 请求,对应的是 create action,不一样的。

#1 楼 @libuchao 明白了!谢谢~但是我没有看到在哪里能更改成 POST 啊,请问这个也是在 routes.rb 里面更改吗?

#2 楼 @hanyangwang 这就是 HTTP 的基本知识了,你浏览器里敲地址,然后回车,是 GET 请求。对于表单而言,看 HTML 代码 form 标签的 method 属性(对于 Rails 而言,还要结合表单里 name_method 的一个 hidden 元素)。

你也可以在你的项目上执行 rake routes 看看

#3 楼 @libuchao 谢谢~弄明白了,的确和您说的一样,我这个文件里只有在执行 create 的操作时才会 POST 转到 users

需要 登录 后方可回复, 如果你还没有账号请 注册新账号