我正在开发一些投票软件,用户可以投票选出3个不同的条目。对于投票模型,我想的是:
投票:
电子邮件地址 - 字符串
验证码 - 字符串
已验证 - 布尔
首次入境 第二次入境 第三 - 进入
Entry是我的rails应用程序中的另一个模型。我怎么能拥有属于这种关系呢?因为我想运行查询,例如获得第一名投票数最多的条目。这是解决这个问题的最佳方法吗?
答案 0 :(得分:1)
用户模型:
has_many :votes, :dependent => :destroy
has_many :entries, :through => :votes
条目模式
has_many :votes, :dependent => :destroy
has_many :users, :through => :votes
投票型号
belongs_to :user
belongs_to :entry
答案 1 :(得分:0)
我会设计投票对象,使其只包含user_id和entry_id。然后你的应用程序逻辑会强制执行,如果他们已经投了三次,他们就不会再投票了。这样,当您查询最高票数时,您不必为第一,第二和第三个条目编写特殊情况。
就belongs_to声明而言,我会说投票属于User和Entry,并且当任何一个依赖对象被销毁时应该被销毁,因此:
class Vote < ActiveRecord::Base
belongs_to :user, :dependent => :destroy
belongs_to :entry, :dependent => :destroy
end