don't use join table

有“播放室”和“用户”两个模型。一个播放室可以有多个用户在里面,一个用户可以参加多个播放室,于是得到了一个多对多的关系。然而继续分析下去,就把中间没有意义的rooms_users表变成了一个Attending对象。于是就得到了这样美丽的代码:

ruby 代码
  1. attending = user.attend(room)  

随后Attending对象的属性、行为也慢慢出现了。

可能大多数时候,多对多关系都可以拆分成两个一对多关系,并把原本没有意义的连接表变成一个模型对象。

另一个类似的:可能大多数时候,控制器只需要7种基本行为就够了,多余的行为可以描述为对另一种资源的基本操作。例如login实际上是session资源的create操作。

你可能感兴趣的:(Ruby)