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

时间:2012-03-11 02:47:34

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

我有业务,目录和产品资源。

企业有目录和许多产品。

目录始终属于企业。

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

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

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

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

非常感谢!

1 个答案:

答案 0 :(得分:7)

嗯,你几乎就在那里:

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

    resources :products do
      resources :images
    end
end

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