要访问信息中心,这是网址:http://localhost:3000/dashboards/1
我想隐藏id
并在网址中不显示任何内容:http://localhost:3000/dashboards/
我看到了另一个问题,但所有问题都显示用id
代替name
。
我怎样才能隐藏id?
答案 0 :(得分:1)
您只需在routes.rb
中定义新路线即可。如果您正在使用resources :dashboards
,那么该路径已经定义,并且通常保留为列出所有可用对象的索引。这样的事情应该有效:
get 'dashboards' => 'dashboards#show'
另请注意,如果您需要控制器中的id,则不能再依赖params来获取ID,因为它不再位于url中且可用。您将不得不使用会话。
答案 1 :(得分:1)
将控制器映射为resource
而不是resources
。在routes.rb
文件更改
resources :dashboards
到
resource :dashboard
这假设您的控制器被称为DashboardsController
。如果没有,请传递适当的控制器名称。
resource :dashboard, controller: 'whatever_controller'
您可能还希望仅限制显示操作,除非您有其他操作。
resource :dashboard, only: [:show]
这将创建路线
GET /dashboard
如果你不限制行动,你也会
GET /dashboard/new
POST /dashboard
PATCH /dashboard
DELETE /dashboard