从rails中的url中提取params

时间:2014-01-26 05:16:58

标签: ruby-on-rails

从下面的网址我怎样才能提取值1?

`http://localhost:3000/category/products/1`

我尝试了params [:id]和params [:products] [:id],但什么都没有。

2 个答案:

答案 0 :(得分:1)

您是否在routes.rb文件中进行了适当的更改?你需要包括像

这样的东西
GET /category/products/:id , ...

使其适用于params[:id]

答案 1 :(得分:0)

<强>路线

您问题的直接答案是修复您的routes.rb文件

根据Rails RESTful routing structure,您应该能够使用命名范围来实现此目的:

#config/routes.rb
scope 'category' do
    resources :products
end

#/category/products/1 -> params[:id]

<强>嵌套

我上面推荐的内容应该直接解决您的问题

但是,我认为您正在努力实现nested资源。如果是这种情况,你应该使用这样的东西:

#config/routes.rb
resources :categories do 
    resources :products
end

这样你就可以:

#categories/:id/products/:product_id