我的产品有一个外国collection_id键
我想将id传递给控制器。 为此,我的控制器有以下路径:
controller :magasin do
get "magasin" => "magasin#index"
end
我的控制器中唯一的视图是magasin / index.html.erb
magasin的链接是link_to collection.nom, magasin_path(collection)
这种语法通常适用于带模型的控制器。我的链接是:http://localhost:3000/magasin.2
而不是http://localhost:3000/magasin/2
稍后我将需要使用product_kind_id而不是collection_id调用相同的视图,我将按名称/价格添加排序....
我如何将ID作为普通参数(/:id)
而不是类型(.id
)?
答案 0 :(得分:1)
要遵循的热门网址架构是RESTful routing。 Rails具有此内置功能,如果您通过rails generate scaffold Magasin nom:string
初始化资源,则会为您设置。
如果您将resources :magasins
放入路由文件中,它会将/magasins
路由到MagasinsController#index
,将/magasins/1
路由到MagasinsController#show
,params[:id]
设置为"1"
。它还将设置一些将来有用的其他路线,但现在只会提出一个未找到异常的动作。
您不希望将点用作参数分隔符,因为Rails会放置request.format
方法中的点后面或params[:format]
中的点(通常通过{{1}访问)生成的脚手架附带的方法)。保存该点以供以后在处理XML和JSON等替代显示格式时使用。
我意识到我已经在一个狭小的空间里说了很多,所以一旦你就这个问题咨询了Rails Guide,请随时提出任何后续问题,我将非常乐意提供帮助!