如果您运行rake routes
,您将看到哪些路由采用id
,哪些不采用,示例输出:
GET /photos index
GET /photos/new new
POST /photos create create
GET /photos/:id show
GET /photos/:id/edit edit
PUT /photos/:id update
DELETE /photos/:id destroy
所以在上面只有show
, edit
,update
和destroy
路线可以采取id
除非您更改了路线,否则index
通常用于集合,因此:
def index
@users = User.all # no id used here, retreiving all users instead
end
当然你可以随意配置路由,例如:
get "users/this-is-my-special-route/:id", to: "users#index"
现在localhost:3000/users/this-is-my-special-route/12
将调用用户index
操作。尽管在这种情况下,您最好创建与其对应的新路由和操作,而不是像那样更改索引。
您可以在此处阅读有关 Rails 中路由的更多信息。