【问题标题】:Rails: Nesting resources more than 1 level deepRails:嵌套资源超过 1 级
【发布时间】:2011-07-17 09:16:46
【问题描述】:

在我的应用中,用户有很多对话,对话有很多消息。我的资源逻辑结构如下:

  resources :users do
    resources :conversations do
      resources :messages
    end
  end

对我来说,这是一个合乎逻辑的结构。但建议不要将资源嵌套深度超过 1 级。

那么,我应该将“对话”设为独立资源,还是继续违反准则?每种方法的全局优缺点是什么?

谢谢。

【问题讨论】:

  • 接受您之前问题的答案。但看起来你已经做得很好了:)

标签: ruby-on-rails


【解决方案1】:

但建议不要将资源嵌套深度超过 1 级。

我认为您可以放心地忽略该“建议”。您可以随意嵌套它们。我经常在我的应用程序中嵌套 3 层和 4 层。

【讨论】:

  • 您有 3 或 4 次嵌套资源的示例吗?只是想知道这些 url 是什么样的(以及它们是否仍然可读)!
  • /apps/4/app_languages/15/localized_string_translation/edit 就是一个例子。
  • /groups/1/users/2/evaluations 是我用过的一个很好的例子。
【解决方案2】:

唯一的建议是满足业务需求。如果您需要有 2 个深度,只需尝试使用 :shallow=>true 即可。但可以肯定的是,在实践中很少使用超过 1 层的深度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多