在has_many:through和has_and_belongs_to_many之间选择 - “应该”或“必须”

时间:2015-09-17 20:20:21

标签: ruby-on-rails-3

或者:“如果你做错了会怎么样”

Doc说:

  

你应该使用has_many:through如果你需要验证,回调,   或连接模型上的额外属性。

但是“你应该使用”应该是“你必须使用”吗?

关键是,我们在联接表中有一个属性,而这个经过深入讨论

那么如果我(我们)决定使用更简单的HABTM会在一年之内弹出友好属性会怎样?是否可以访问它(更复杂,更好),还是我们重新开始并重新设计?

所有答案(也有很多) - “HABTM或:通过”,或多或少容易决定; “接受这个或另一个”。

如果我们判断错误,我想知道如何纠正错误。

是的,例如。可以“在两者之间推送模型”,或者如果它弹出来怎么访问这个属性?

或者是更好的策略:通过?只是肯定

1 个答案:

答案 0 :(得分:1)

是的,可以将HABTM转换为HMT。

连接表遵循词汇顺序的表+表的命名约定,例如" developers_projects"。

稍后,如果你想建立关系HMT只是创建一个名为_Save_all_regs的模型并将其用作连接表。它是同一张桌子。但是,您可以使用迁移来添加字段,并使用模型添加验证等等。

从HMT开始的优点是你可以随意调用连接表,但这并不是非常重要。