0

我有模型foo1、和foo2,它们是 的子类。我有像和这样的模型。foo3foo4foobarbaz

模型barbaz包含类型对象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, 来避免对barand设置相同的值baz,但我仍然必须添加get :nextfoo.

是否有一些我不知道的rails魔法可以做到这一点?

4

1 回答 1

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也许?)。

于 2013-11-12T00:23:33.127 回答