首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将不同的控制器名称与其他控制器操作组合在一起?Rails

如何将不同的控制器名称与其他控制器操作组合在一起?Rails
EN

Stack Overflow用户
提问于 2013-06-27 17:17:39
回答 1查看 140关注 0票数 0

我想实现这样的功能。所以我有products控制器,它处理产品的CRUD。我还有类别控制器,它可以处理类别增删改查。

我想要实现的是,当我在浏览产品时显示动作,在浏览栏中我可以看到这样的url。

代码语言:javascript
复制
www.mydomainname.com/products/category_name/product_name

此时此刻,我有。

代码语言:javascript
复制
www.mydomainname.com/products/city-skid-7v3

所以这意味着我需要在路由中组合两个控制器。有没有人可以从例子或建议开始呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-27 17:19:44

你的routes.rb中应该有

代码语言:javascript
复制
namespace :products do
  resources :categories do
    resources :products
  end

  # to index products without category:
  resources :products, only: :index
end

然后,您应该更改views/controllers中使用路由的所有位置。例如,如果您有

代码语言:javascript
复制
link_to product.name, product

您应该将其替换为:

代码语言:javascript
复制
link_to product.name, [:products, product.category, product]

由于现在链接到产品时,您还需要指定类别url段。

在您的products#index中,您现在可以检查是否提供了category_id,并分别过滤产品:

代码语言:javascript
复制
scope = if params[:category_id]
  Category.find_by_permalink!(params[:category_id])
else
  Product
end
@products = scope.all # add your other scopes here
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17339268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档