Ruby on rails Rails 4:我可以在另一个浅层资源中深嵌套一个浅层资源吗?

Ruby on rails Rails 4:我可以在另一个浅层资源中深嵌套一个浅层资源吗?,ruby-on-rails,ruby-on-rails-4,model-view-controller,routes,nested-resources,Ruby On Rails,Ruby On Rails 4,Model View Controller,Routes,Nested Resources,在我的Rails 4应用程序中,有五种型号: class User < ActiveRecord::Base has_many :administrations has_many :calendars, through: :administrations end class Calendar < ActiveRecord::Base has_many :administrations has_many :users, through: :administration

在我的Rails 4应用程序中,有五种型号:

class User < ActiveRecord::Base
  has_many :administrations
  has_many :calendars, through: :administrations
end

class Calendar < ActiveRecord::Base
  has_many :administrations
  has_many :users, through: :administrations
  has_many :posts
end

class Administration < ActiveRecord::Base
  belongs_to :user
  belongs_to :calendar
end

class Post < ActiveRecord::Base
  belongs_to :calendar
end

class Comment < ActiveRecord::Base
  belongs_to :post
  belongs_to :user
end
现在,我需要将
注释
资源添加到路由文件中,并考虑将其与
浅层:true
嵌套在
posts
资源中,该资源已经是浅层资源,如下所示:

Rails.application.routes.draw do

  root to: 'pages#home'

  devise_for :users, :path => 'account'

  resources :calendars do
    resources :posts, shallow: true
  end

end
Rails.application.routes.draw do

  root to: 'pages#home'

  devise_for :users, :path => 'account'

  resources :calendars do
    resources :posts, shallow: true do
      resources :comments, shallow: true
    end
  end

end
我相信这在技术上是可能的,但我不确定这会被视为一种好的或坏的做法

特别是因为,据我所知,浅嵌套的主要目的是避免深嵌套


换句话说,作为一名Rails初学者,是否有技术上的原因可能会使这成为一种糟糕的做法,并在未来的应用程序开发中造成重大问题?

是的,您的嵌套浅路由将很好地工作。此外,由于深度嵌套的资源很快变得麻烦,因此使用了浅层路由。所以,我认为作为一名应用程序开发人员,如果你同意这一点,那就好了

Jamis Buck提出了良好轨道设计的经验法则:

资源嵌套深度不得超过1级


所以,我不认为你在监督这里的任何事情。如果这些方法对你有用的话,你可以使用这些浅显的方法。

谢谢,你的帮助总是非常有用和感激的。非常欢迎:)你学得很快:)坚持下去:)谢谢;)我看到您在堆栈溢出方面也做得很好,祝贺您!