【问题标题】:Rails Single Resource as Nested Resource of Two Other ResourcesRails 单一资源作为两个其他资源的嵌套资源
【发布时间】:2012-03-11 02:47:34
【问题描述】:

我有一个企业、一个目录和一个产品资源。

一家企业有一个目录和许多产品。

目录永远属于企业。

产品可能在目录下,也可能不在目录下。

products 表都有 catalog_id 和 business_id。

我将如何形成路径,以便我可以允许没有目录的产品和属于目录的产品,即这些 URL:

  • businesses/:business_id/catalogs/:catalog_id/products/:id
  • businesses/:business_id/products/:id

我已经允许后者使用这个:

resources :businesses do
    resources :catalogs

    resources :products do
      resources :images
      end
  end

如何修改它以允许第一个 URL?

我知道我只是遗漏了一些简单的东西,请随时关闭它,如果有重复的话,请参考。

非常感谢!

【问题讨论】:

  • 如果这是业务需求,使用 3 级嵌套路由没有什么问题,但它是 not the rails way。只需使用 2 条就可以达到 3 级嵌套路由的效果,并且路由更加宁静。
  • @garbagecollection 介意回答如何做到这一点?用 2 实现 3 级嵌套路由?
  • Check out the routes of this project I am current working on。我在与您遇到的非常相似的问题上苦苦挣扎。目前,Forum、Topic 和 Post 3 个模型之间的关联工作得很好,没有错误。一个论坛有很多主题。一个主题有很多帖子。所以3级深在这里对我有用。但由于 2 级深度解决了这个问题,我没有费心使用 3 级深度。

标签: ruby ruby-on-rails-3 url-routing


【解决方案1】:

嗯,你快到了:

resources :businesses do
    resources :catalogs do
      resources :products do
        resources :images
      end
    end

    resources :products do
      resources :images
    end
end

您对企业/产品所做的方式与您对企业/目录/产品所做的相同,没有区别,只是嵌套资源。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
相关资源
最近更新 更多