Ruby on rails rails社区的优势是什么;命名联接模型的命名约定是什么?

Ruby on rails rails社区的优势是什么;命名联接模型的命名约定是什么?,ruby-on-rails,ruby,activerecord,naming-conventions,jointable,Ruby On Rails,Ruby,Activerecord,Naming Conventions,Jointable,在本文中,Ryan Bates提到在命名联接模型时使用以-tion、-ment或-ship结尾的词是一个很好的约定。这项公约有什么好处 例如,如果我有一个分别称为“Albums”和“Songs”的两个模型,其中一首歌可以出现在多张专辑中,而一张专辑有多首歌,会怎么样?对于此操作所需的联接表,什么是好名称?追踪船?Tracklistings?惯例是将其命名为有意义的名称 这些关系往往以这些结局结束。关键是要遵循一个惯例并保持一致,不一定所有的东西都能整齐地放在相同的三个结尾中 对我来说,这听起来像

在本文中,Ryan Bates提到在命名联接模型时使用以-tion、-ment或-ship结尾的词是一个很好的约定。这项公约有什么好处


例如,如果我有一个分别称为“Albums”和“Songs”的两个模型,其中一首歌可以出现在多张专辑中,而一张专辑有多首歌,会怎么样?对于此操作所需的联接表,什么是好名称?追踪船?Tracklistings?

惯例是将其命名为有意义的名称

这些关系往往以这些结局结束。关键是要遵循一个惯例并保持一致,不一定所有的东西都能整齐地放在相同的三个结尾中

对我来说,这听起来像是
Tracks
AlbumTracks
,等等。如果你想按照他的想法编一个词,可能是
tracking
trackiniation
(将曲目放在专辑上的过程),
Albumship
(比如“会员资格”但有专辑歌曲)等等

另外请注意,希望您没有名为
Albums
Songs
的型号,而是
Album
Song
。在我看来,最清晰的关系就是相册歌曲,因为这正是它的本质


您也可以选择另一种方式,将它们称为
Mixes

使用一致命名约定的另一个好处是,您很有可能不是唯一一个处理代码的人。通过使用一致的命名约定,处理代码的其他人将更容易处理代码。您还可能会发现它更容易维护,因为您可能会在6个月内不接触代码,有一天会重新使用它。通过使用一致的命名约定,您将能够理解自己在做什么,而无需通读所有代码

一首歌真的属于多张专辑吗?很确定这是一个汇编或mixtape@AJcodez是的,一个给定的录制事件可以属于多个相册(有些人明确关心这些事情)。除此之外,我看不出“专辑”和“汇编”之间有什么有意义的区别,但如果真的有一张专辑的话,一个旗帜/地位就足够了。@DaveNewton有趣的是,我不知道,例如,61号公路上的《像一块滚石》的同一首录音(或歌曲)与最畅销的第1卷一样,都被重新收录了。谢谢Dave。“曲目”对我来说很有意义,尽管“曲目”实际上是专辑中的歌曲,所以从这个意义上讲它有点让人困惑。专辑歌曲对我来说似乎没问题,但Ryan Bates建议不要这样做,因为他说这会很快让人困惑。那么,在这种情况下,“轨迹列表”是最好的吗?我需要连接表的原因是我需要存储有关歌曲和相册之间关系的其他数据,例如歌曲在相册上的显示顺序。否则,我只会使用has\u和\u-allows\u-to\u-many关系来表示两者。@leemcaly我认为TrackList很好,我可能会将表命名为track\u-lists。不过,我不确定专辑歌曲是否令人困惑。我也不会因此而耽搁进度,或者改变的成本或可能性不太可能成为一个门控开发问题。我最终选择了
相册化
。我首先尝试了
track\u lists
,但当我开始建立关系时,从概念上说,专辑
有很多:歌曲,:通过=>:albumization
,而且歌曲
有很多:album,:通过=>albumization
。将歌曲放在相册上并将其放置在相册上的某个位置的过程实际上就是这个连接模型所做的。所以我认为这里的一个虚构的词是有道理的。@leemcally似乎很有道理;这就像跟踪,但在反射上可能是倒退的,而你的不是。谢谢布莱恩。这是命名约定价值的一个很好的概述。但我想,重要的是要正确看待它们,不要为了遵守惯例而使用惯例,因为它对你的具体问题没有意义。