我已经阅读了关于rails 3中的多对多关系,并且看到HABTM已被“弃用”,因为在大多数情况下应该使用has_many :through
。通过协会的has_many的好名字
我看到很多例子,其中Join Model有一个明确的名字,例如Magazine,Suscriber = Subscriptions。
但在我的情况下,我找不到一个好名字:/有没有我应该知道的任何约定?顶部包含1或*想法,而想法可以在1或*顶部。最后,这是最好的方式呢?
这里是我的代码:
class Top < ActiveRecord::Base
has_many :???
has_many :ideas, :through => :???
end
class Idea < ActiveRecord::Base
has_many :???
has_many :ideas, :through => :???
end
class ??? < ActiveRecord::Base
belongs_to :top
belongs_to :idea
end
使用的has_many
还通过我不需要手动创建一个连接表吧?
感谢所有帮助:)
编辑:
顶部就像一个排名。所以顶部是按照他们的投票排序的想法的表示。一个想法是一个想法(一般来说)。例如,可以成为Ruby on Rails的最佳实践的顶端,并提出一个主意“使用has_many而不是HABTM”。
因此,顶部包含1或*思想和想法可以属于1或*顶部。对于想法来说,它更像是一个belongs_to_many,但它并不存在于ror中。
什么是顶部,以及如何它包含想法? – Brandan
成为[精确](http://guides.rubyonrails.org/association_basics.html#additional-column-methods)_“不建议在has_and_belongs_to_many关联中在连接表上使用额外的属性。”_ – Stefan
Your Top (就像一个排名)听起来像一个快照,如果想法排名可以随着时间而改变... sooo也许快照有很多排名(某些时候计算一些数字),并通过排名有很多想法。一个想法可以有许多排名(随着时间的推移),并且随着时间的推移排序会有很多快照。仍然不确定我是否讨论你的问题定义... – railsdog