什么是最好的Rails惯例?

时间:2011-04-03 04:52:06

标签: ruby-on-rails ruby ruby-on-rails-3 nested-attributes virtual-attribute

假设您拥有一个完全在另一个资源视图中创建和显示的资源(例如,评论或标签)。你是否还应该把它作为自己的资源,或者将它作为嵌套资源更好?另外,你应该使用虚拟属性吗?

我知道这个问题很普遍,但我不是在寻找具体的答案,只是对每种技术何时首选的一般解释。

2 个答案:

答案 0 :(得分:1)

一般来说,将它作为嵌套资源会更有用。这是更“RESTful”的方式。它还允许您访问父资源,而无需将其指定为参数。但是,您不希望将资源嵌套到多个深度,如Rails routing guide中所述。

答案 1 :(得分:1)

一些一般性的想法:

  • 嵌套和独立资源不一定是互斥的。
  • "完全在另一个资源的视图中创建和显示"是一个强烈的声明,最终可能不是真的。例如,标签:您是否想要一个包含特定标签的所有文章的列表。这是没有意义的嵌套。
  • 在第二级或第三级以下筑巢将开始比它的价值更麻烦。有些人会说,即使是第一次筑巢也比它的价值更麻烦。
  • 对于具有单一主导资源的应用程序,添加其他独立资源的成本会按比例增加。小型应用可以摆脱大型应用无法实现的复杂性。
  • 如果你没有良好的感觉,但每个方面都要写一些资源。答案充其量只能证明最好通过经验培养自己的意见。