如果我有路线:
/users/9/follow
"9"
像这样进来:
Parameters: {"id"=>"9"}
但如果我有一条路线:
/images/6936/like
然后参数附加了图像:
Parameters: {"image_id"=>"6936"}
只是想知道我应该如何知道它是id
or resourcename_id
。
如果我有路线:
/users/9/follow
"9"
像这样进来:
Parameters: {"id"=>"9"}
但如果我有一条路线:
/images/6936/like
然后参数附加了图像:
Parameters: {"image_id"=>"6936"}
只是想知道我应该如何知道它是id
or resourcename_id
。
从外到内从Rails 路由中提取
2.10.1 添加成员路由
要添加成员路由,只需将成员块添加到资源块中:
resources :photos do member do get 'preview' end end
这将使用GET识别/photos/1/preview,并使用传入的资源 id 值路由到 PhotosController 的预览操作。它还将创建preview_photo_url 和preview_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]
.