我使用Ruby on Rails 3以YouTube「喜歡」和「不喜歡」和Digg風格爲我們的網站創建了一個投票功能。我遇到了問題方案。喜歡/不喜歡風格投票Rails數據庫
我有三個模型,用戶,主題和投票。每個用戶將爲一個主題做一個「贊」或「不喜歡」的投票。像這些網站一樣,用戶可以對主題投票,但他們也可以創建新主題。我希望不僅能夠查看所有用戶的投票,還能夠查看他們創建的主題和他們投票的主題。我正在嘗試自行構建,並決定如何最好地設置數據庫來處理此過程。
我的第一個想法就是使用:的has_many和belongs_to的完全是這樣的...
類用戶<的ActiveRecord :: Base的
的has_many:票
的has_many:主題
類主題< ActiveRecord :: Base
has_many:votes
belongs_to的:用戶
類投票<的ActiveRecord :: Base的
belongs_to的:主題
belongs_to的:用戶
布爾選擇#tracks用戶是否選擇喜歡或不喜歡
但很明顯,這可能不是實現這一目標的最佳方式。我開始認爲最好的方法是使用一個:的has_many:通過關聯像...
類用戶<的ActiveRecord :: Base的
的has_many:投票,:通過=>:主題
但我不確定。關於如何最好地設置這樣的東西的任何想法?