我有一个多态脚本类,像这样:
Script
belongs_to :scriptable, :polymorphic => true
...
end
project和testCase是包含这个类的。脚本也有回形针,是可版本的,所以基本上,我已经有一个现有的路由脚本:
resources :test_cases do
resources :script do
resources :script_versions
end
end
这条路线以前就存在,但我们的应用程序的一个新功能是使项目也可脚本化。这是否意味着我必须像这样为项目添加相同的路由:
resources :projects do
resources :script do
resources :script_versions
end
end
如果将来我们有其他可脚本化的类会发生什么?我每次都要创建这样的路线吗?它看起来很干净,但我觉得它不干。多态性应该能帮到我,不是吗?是否有多态的方式来声明路由?
您可以像这样将多个名称传递给resources
resources :test_cases, :projects do
resources :script do
resources :script_versions
end
end
你可以这样做:
[:test_cases, :projects].each do |resource|
resources resource do
resources :script do
resources :script_versions
end
end
end
可能不是很优雅,但至少它是DRY的