Rails 新手,学习从创建经典博客应用程序开始的教程。
运行:Rails 3.2.3 和 Ruby 1.9.2
首先创建一个新的 Rails 项目,然后生成脚手架以创建入口控制器和视图。然后使用 rake db:migrate 在 mysql 数据库服务器上创建条目表。
启动 Rails 服务器(WEBrick 1.3.1),并将我的浏览器指向 0.0.0.0:3000/entries,它工作正常,默认进入索引操作。
但令我惊讶的是,试图将我的浏览器指向 /entries/index 会返回错误。我的条目控制器包括以下操作:索引、显示、新建、编辑、创建、更新、销毁。其中,只有进入 /entries/new 才有效,其余的似乎被 :id 默认值覆盖。
routes.rb 包含两行:
Mydiary::Application.routes.draw 做
资源:条目
我认为访问控制器操作的默认格式是 http://[hostname]/[controller]/[action]。因此,虽然不给出操作默认为 index 是有道理的,但坦率地说,http://[hostname]/entries/index 不起作用,这让我大吃一惊。这可能有什么原因?检查其余部分,看起来只有新操作有效。其余的都被 :id 覆盖。
顺便说一句,这与教程中所说的不符,它告诉我这是 Rails 3 中的新内容。
所以我想我的问题是,我在哪里可以找到默认情况下哪些操作被 :id 操作覆盖,哪些不是?非常令人沮丧...