执行以下路由配置:
resources :cadeiras do
resources :professores
end
resources :cadeiras do
resources :fichas
end
resources :fichas do
resources :exercicios
end我将生成2个不同的链接到相同的控制器和操作,运行rake路径会得到类似的结果:
fichas GET /fichas(.:format) {:action=>"index", :controller=>"fichas"}
cadeira_fichas GET /cadeiras/:cadeira_id/fichas(.:format) {:action=>"index", :controller=>"fichas"}第一个操作将引用所有的“fichas”,而第二个操作仅引用“fichas”和“cadeiras”,如何区分这两个操作?
我想要避免下面描述的三层嵌套问题:http://weblog.jamisbuck.org/2007/2/5/nesting-resources
谢谢您抽时间见我
发布于 2011-12-04 10:01:17
如果我没理解错的话,答案是“你不区分它们”:
从控制器执行完全相同的操作,呈现完全相同的视图。不同之处在于发送到视图的“fichas”集合:-在第一种情况下,所有的fichas在视图中都可用-在第二种情况下,只有与“cadeira”相关的“fichas”在视图中可用(例如,/cadeira/1/fichas将只显示与带有id 1的'cadeira‘相关的'fichas’)
确定要显示哪些记录(例如)在索引视图中,您可以执行以下操作:
unless cadeira_id = params[:cadeira_id]
@fichas = Ficha.all
else
@fichas = Cadeira.find(cadeira_id).fichas
end剩下的取决于视图:它应该以同样的方式呈现which,你只需要选择哪些记录实际上对它是可用的。
https://stackoverflow.com/questions/8372593
复制相似问题