为什么索引操作会呈现show视图?

时间:2014-03-24 23:45:48

标签: ruby-on-rails views

我注意到控制器中的索引操作(方法)通常会呈现节目视图。

例如:

/posts/index 

在我的localhost上呈现展示视图时。虽然简单

/posts

呈现索引。为什么是这样?我还没有能找到解释这个问题的地方吗?

我对rails很新,谢谢!

2 个答案:

答案 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