resources :users do
resources :collections
end
这样的嵌套route,在rake 后会得到
/users/:user_id/collections/:id
和/users:id/
我能不能自定义参数形式,希望得到这样的url
/users/:user_id
and
/users/:user_id/collections/:collection_id
并且,最关键的是,由params对象取参数时候,不再是params[:id]
,而是params[:user_id]
。
查过很多资料,都说重写to_param
方法和使用friendly_id gem可以解决问题。但是其实这些都只是改变了url的形式,本身route并没有被改变,所以params[:user_id]
的参数取法还是取不到的。
是否有其他可用的办法?
resources :users do
resources :collections
get ':user_id',:action => :show, :on => :collection
end
不太理解为啥你需要 :userid 和 :collectionid,因为这两个从语义上来说应该是代表 nested resources,而 :id 是代表 member resource。
如果你真的需要,那就不能用 resources,而是自己用 match 去加参数。