Rails单一资源作为两种其他资源的嵌套资源

yre*_*uta 3 ruby url-routing ruby-on-rails-3

我有一个企业,一个目录和一个产品资源.

企业有目录和许多产品.

目录将始终属于企业.

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

products表都有catalog_id和business_id.

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

  • 企业/:business_id /目录/:catalog_id /产品/:ID
  • 企业/:business_id /产品/:ID

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

resources :businesses do
    resources :catalogs

    resources :products do
      resources :images
      end
  end
Run Code Online (Sandbox Code Playgroud)

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

我知道我只是遗漏了一些简单的东西,随意关闭它,如果有的话,请参考副本.

非常感谢!

Mau*_*res 7

好吧,你几乎就在那里:

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

    resources :products do
      resources :images
    end
end
Run Code Online (Sandbox Code Playgroud)

与企业/产品相同的方式,您也可以为企业/目录/产品做,没有区别,只需嵌套资源.