Rails - 多对一关系集合的多个路由

时间:2016-10-17 18:55:58

标签: ruby-on-rails ruby mongodb ruby-on-rails-4

RubyonRails - 带有mongoDb的4.x版本。

所以我有一个区域页面作为顶级课程。它有很多公园和房屋。 我试图从同一个区域UI页面为Parks和Houses进行CRUD操作。因此,区域索引页面将有2个添加按钮(ADD Park& ADD House)。区域的索引页面还应显示所有公园和房屋,每个公园和房屋都有自己的编辑和删除按钮。

我不确定如何设置路由/控制器/视图及其文件夹结构。

users

1 个答案:

答案 0 :(得分:2)

您可以使用基本路线配置:

resources :areas do
  resources :parks
  resources :houses
end

问题是,使用此配置,ParksController和HousesController将与AreasController位于同一文件夹中。如果您想要一个名为areas的子目录,其中包含两个控制器,请执行以下操作:

resources :areas do
  scope module: :areas do
    resources :parks
    resources :houses
  end
end

你最终会得到这样的文件夹结构:

app/
  controllers/
    areas/
      parks_controller.rb
      houses_controller.rb
    areas_controller.rb
  views/
    areas/
      areas/
        parks/
        houses/
      index.html.haml
      edit.html.haml
      # etc. (views for AreasController actions)