Rails 3中的多态资源路由



我有一个多态脚本类,像这样:

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的

相关内容

  • 没有找到相关文章

最新更新