我的routes.rb文件是这样的:
resources :campi do
resources :unities do
resources :buildings do
resources :networks
end
end
end正如你所看到的,我在建筑物里有网络,在统一中有建筑物,在校园里有统一。但是,如果我有,例如:
校园编号: 10统一号: 20楼ID: 30网络号码: 40
我的网址是:/campi/10/unities/20/buildings/30/networks/40
我希望它是:/10/20/30/40
我该怎么做?
是的,我的模型都是正确的,以适当的方式使用has_many。
编辑:--我希望它像这样工作:
例如,如果我同意,/10/20/buildings,我将访问统一20内部的建筑物集合,它包括crud方法的页面。
发布于 2014-09-28 20:06:22
根据Rails从外部路由到中的最后一节
深度嵌套的资源很快就会变得很麻烦。例如,在这种情况下,应用程序将识别路径,例如:
/publishers/1/magazines/2/photos/3相应的路由助手将是publisher_magazine_photo_url,要求您在所有三个级别指定对象。事实上,这种情况令人困惑,以至于Jamis的一个流行的文章为良好的Rails设计提出了一条经验法则: 资源不应嵌套超过1层深度。
我建议你想办法避免这种情况。但是,如果您无法避免这种安排,那么您必须定义一个指定的路径来解决这种情况:
get '/:campi_id/:unity_id/:building_id/:network_id', to: 'networks#show', as: :network
get '/:campi_id/:unity_id/buildings', to: 'buildings#index', as: :buildings我希望你明白这个想法。
https://stackoverflow.com/questions/26081283
复制相似问题