我注意到控制器中的索引操作(方法)通常会呈现节目视图。
例如:
/posts/index
在我的localhost
上呈现展示视图时。虽然简单
/posts
呈现索引。为什么是这样?我还没有能找到解释这个问题的地方吗?
我对rails很新,谢谢!
答案 0 :(得分:1)
/posts
映射到index
操作的路线。
/posts/index
映射到show
操作的路由。您会收到Cannot find a post with id=index.
为资源posts
生成的路由如下:
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
Rails会将路径/posts/index
与show action即/posts/:id
匹配。
答案 1 :(得分:1)
添加路线时
resources :your_controller
rails默认创建主要的7种方法[索引,显示,新建,创建,编辑,更新,删除)。
索引并显示两者都是获取请求但是索引在控制器名称后不期望id
在你的示例/帖子中,但show需要在控制器名称后面有一个id,因为它的路由就像这样
/posts/:id
所以" / posts /"之后的任何参数; rails将其解释为id