[英]Rails nested resource route on column
我有一个名为Product
的模型,该模型具有一个名为category
的字段。 如何使用category
字段为Product
模型进行嵌套的资源丰富的路由?
例如:
/category1/ --> index products with 'category = category1'
/category2/13 --> show product '13' with 'category = category2'
/categories/ --> show overview of categories
您可能会做得很好:
resources :products do
resources :categories
end
然后,您将获得诸如new_product_category_path
类的路线助手,并且可以通过/products/:id/category/:id
的URL访问您的产品类别
“ Rails”的实现方式将在product.rb: has_many :categories
。 为此,您需要在产品表中的category_id
列
并且在category.rb belongs_to :product
所有这些都假定一种产品只有一个类别。 如果不是,则必须设置一个联接表,在这种情况下,您应该通过http://guides.rubyonrails.org/association_basics.html#the-has-many-through-查看has_many
上的文档。 协会
据我所知,您将必须手动执行每条路线
get '/:category/', to: "products#index"
get '/:category/:id', to: "products#show"
get '/:category/new', to: "products#new"
get '/:category/:id/edit', to: "products#edit"
match '/:category/:id', to: 'products#create', via: :post
match '/:category/:id', to: 'products#update', via: [:put, :patch]
match '/:category/:id', to: 'products#destroy', via: :delete
对于您的第一个示例/category1/
将在控制器中将params[:category]
设置为"category1"
对于第二个示例, /category2/13
将在控制器中将params[:category]
为"category2"
并将params[:id]
为13
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.