如果我有路线:
/users/9/follow
"9"
就像这样:
Parameters: {"id"=>"9"}
但如果我有路线:
/images/6936/like
然后参数附加了图像:
Parameters: {"image_id"=>"6936"}
只是想知道我应该知道它是id
还是resourcename_id
。
答案 0 :(得分:0)
摘自Rails Routing from the Outside In
2.10.1添加成员路由
要添加成员路由,只需将成员块添加到资源中 块:
resources :photos do member do get 'preview' end end
这将识别 / photos / 1 /预览 GET ,并路由到 PhotosController的预览动作,具有资源id值 传递给
params[:id]
。它还会创建 preview_photo_url 和 preview_photo_path 助手。在成员路由块中,每个路由名称都指定HTTP 它会识别的动词。你可以使用get,patch,put,post或 删除这里。如果您没有多个成员路线,也可以 传递:开到一条路线,消除阻挡:
resources :photos do get 'preview', on: :member end
你问题的实际答案在最后一段:
您可以省略
:on
选项,这将创建相同的成员 路由,但资源ID值可用params[:photo_id]
代替params[:id]
。