在Rails中嵌套模型和路由的正确方法

时间:2015-02-02 15:44:10

标签: ruby-on-rails ruby model nested

我创建了一个嵌套在 Foo 中的 Bar 模型,路由和关系已经正常工作。我可以创建相对于父 Foo 的多个 bar

#foo model
class Foo< ActiveRecord::Base
  has_many :bars
end

#bar model
class Bar< ActiveRecord::Base
  belongs_to :foo
end

#nested routing
resource :foo do
 resource :bar
end


#Beautiful draw

|Foo1___
|       |__Bar1
|Foo2___
|       |__Bar1
|       |__Bar2
|       |__Bar3
|Foo3___
|       |__Bar1
|       |__Bar2_
|               |

现在我需要创建另外4个模型,这些模型在逻辑上是一个Bar的子项,但这种深度嵌套方法对我来说似乎很麻烦,特别是因为我可能需要在其中一些下面添加另一个级别

  resources :foo do
    resources :bar do
      resources :donatello
      resources :raphael do
        resources :pizza
      end
      resources :michelangelo
      resources :leonardo

    end
  end

1 个答案:

答案 0 :(得分:1)

你实际上是在正确地做这件事。

我们有一些嵌套资源,深度为7 - 9级。

http://guides.rubyonrails.org/routing.html#nested-resources