我有模型foo1
,foo2
,foo3
和foo4
,它们是foo
的子类。我有bar
和baz
等模型。
模型bar
和baz
包含foo
类型及其所有子类型的对象。此外,每种类型都有一个名为next
的行为。
现在我必须设置像
这样的路线resources :bar do
resources :foo do
member do
get :next
end
end
resources :foo1 do
member do
get :next
end
end
...
end
我可以使用concern
,以避免将其设置为bar
和baz
,但我仍然需要将get :next
添加到foo
的每个子类型}。
是否有一些我不知道的轨道魔法?
答案 0 :(得分:0)
假设你的问题是关于减少routes
文件中的重复,你可以简单地循环遍历密钥数组:
[:bar, :baz].each do |parent|
resources :parent do
[:foo, :foo1, :foo2, :foo3, :foo4].each do |children|
resources :children do
member do
get :next
end
end
end
end
end
但是,这看起来非常糟糕,所以您可能希望再次查看应用程序的设计并确定这是否真的有必要。另外,请记住,Rails期望复数键作为resources
的参数,因此您可能需要弄清楚:foo1
之类的复数是多少(:foo1s
? )。