我已經閱讀了關於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