与其他2个模型具有belongs_to关系的模型是否应该嵌套在路径中?

时间:2013-09-27 11:21:50

标签: ruby-on-rails ruby-on-rails-3

我正在创建一个用于管理个人房地产的网络应用程序。所以我有以下模型

class Building < ActiveRecord::Base
  attr_accessible :address, :name
  has_many :docs
end

class Land < ActiveRecord::Base
  attr_accessible :address, :name
  has_many :docs
end

class Doc < ActiveRecord::Base
  #Model for documents
  attr_accessible :name ,:actual_file
  has_attached_file :pdf
  belongs_to :building
  belongs_to :land
end

现在,最好的方法是什么?我应该在建筑和土地资源中分别嵌入文档吗?或者根本不嵌套文档更好?我知道我可以使用多态关联,但假设我不想使用它们。问题更多的是路由部分。

这是我的routes.rb

  resources :lands
  resources :buildings       
  resources :docs

每种方法有哪些优点?

2 个答案:

答案 0 :(得分:2)

这对于Routing Concerns来说是个好例子。

虽然我不确定它是否适用于Rails 3并且没有多态关系。

答案 1 :(得分:1)

尝试这种方法......

  resources :lands do
    resources :docs
  end

  resources :buildings do
    resources :docs
  end

然后您可以访问

等文档
/lands/:id/docs/:id
/buildings/:id/docs/:id

更具可读性......

详细了解嵌套路由here