创建到控制器的路由,不带带/ id的模型

时间:2011-02-21 17:28:33

标签: ruby-on-rails controller routes

我的产品有一个外国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)?

1 个答案:

答案 0 :(得分:1)

要遵循的热门网址架构是RESTful routing。 Rails具有此内置功能,如果您通过rails generate scaffold Magasin nom:string初始化资源,则会为您设置。

如果您将resources :magasins放入路由文件中,它会将/magasins路由到MagasinsController#index,将/magasins/1路由到MagasinsController#showparams[:id]设置为"1"。它还将设置一些将来有用的其他路线,但现在只会提出一个未找到异常的动作。

您不希望将点用作参数分隔符,因为Rails会放置request.format方法中的点后面或params[:format]中的点(通常通过{{1}访问)生成的脚手架附带的方法)。保存该点以供以后在处理XML和JSON等替代显示格式时使用。

我意识到我已经在一个狭小的空间里说了很多,所以一旦你就这个问题咨询了Rails Guide,请随时提出任何后续问题,我将非常乐意提供帮助!