-5

如果我有路线:

/users/9/follow

"9"像这样进来:

Parameters: {"id"=>"9"}

但如果我有一条路线:

/images/6936/like

然后参数附加了图像:

Parameters: {"image_id"=>"6936"}

只是想知道我应该如何知道它是idor resourcename_id

4

1 回答 1

0

从外到内从Rails 路由中提取

2.10.1 添加成员路由

要添加成员路由,只需将成员块添加到资源块中:

resources :photos do
  member do
    get 'preview'
  end
end

这将使用GET识别/photos/1/preview,并使用传入的资源 id 值路由到 PhotosController 的预览操作。它还将创建preview_photo_urlpreview_photo_path助手。params[:id]

在成员路由块中,每个路由名称都指定了它将识别的 HTTP 谓词。您可以在此处使用 get、patch、put、post 或 delete。如果您没有多个成员路由,您还可以将 :on 传递给一个路由,从而消除阻塞:

resources :photos do
  get 'preview', on: :member
end

您的问题的实际答案在最后一段中:

您可以省略该:on选项,这将创建相同的成员路由,但资源 id 值将可用 params[:photo_id]而不是params[:id].

于 2013-07-06T15:14:24.333 回答