我才开始接触ROR,我是参照agile web development with rails这本书学习,按照上面的例子走,但是我发现我请求的地址似乎和config/routes.rb里面设定并不一样,比如说routes中是这样设置的:
[code="ruby"]
map.connect ':controller/:action/:id'
[/code]
可是我在浏览器中编辑的时候显示的是:http://localhost:3000/products/2/edit
2是id编号,Edit是action名,这样不是和设置不一致么,为什么照样可以运行?
而显示页面的地址是:http://localhost:3000/products/2, 默认不是找index么?怎么controller后面直接跟id了呢?
这个机制到底是什么样的呢? 还请知道的帮我解惑,先谢过了.
在客户端 工程文件夹下 输入 rake routes
看看路由的规则,识别是从上向下的, 如果需要更改,在config/route.rb文件里加入新规则,每个控制器的 map.resources 之前加
俺也初学,是有点迷惑
感觉生成index,new,create等只能当后台程序用
找到一篇很精典的文章,终于明白了
REST 风格的URL是为了定位一个资源,而并不是调用一个action. 在REST中,URL经常以这种方式出现:先是controller的名称,然后是资源的id。请求的操作隐藏在URL里,并且通过 http 协议来表示(get, post, put, delete 四个动作)。
看看routes里是不是设置了named route,
like this:
map.product 'product/:id/:action/',:controller=>"product"