中的
resources :departments do
resources :buildings do
resources :halls do
end
resources :chairs do
resources :buildings do
resources :halls do
end
end
end
我想在buildings
和halls
之间分享chairs
和departments
的相同观点。我正在考虑以这种方式在视图中创建url:
link_to "Show", [@department, @chair, @building, @hall].compact
如果@chair
不存在,则会nil
,因此上层链接会生成:
link_to "Show", [@department, @building, @hall]
如果存在@chair
:
link_to "Show", [@department, @chair, @building, @hall]
我的问题是:如何创建这种方式网址到edit
或new
行动?或者这种嵌套资源可能存在更好的解决方案吗?
答案 0 :(得分:0)
我有一个应用程序,我们可以深入嵌套三个最多四个资源。一个例子是联系人的管理。我们有公司,位置和联系模式。
通常,您可以使用new_department_chair_building_path(@department,@chair)
访问新路径和编辑路径。
不要忘记在新建筑的表格中包含您的前辈(deparment,chair)中隐藏的ID。
在您的建筑控制器中,您必须根据上下文过滤掉要加载的对象。我们这样做
# Company controller
def index
if params[:project]
@project = ....
end
end
可能有更好的方法可以做到这一点,但我们还没有找到任何方法。
在视图中,我们检查@project
,然后渲染部分内容。
我希望这对你有所帮助。
干杯,
丹
答案 1 :(得分:0)
您也可以在数组中粘贴符号。所以像这样:
link_to "Edit", [:edit, @department, @chair, @building, @hall]