0

我正在开发一些投票软件,用户可以在其中为 3 个不同的条目投票。对于投票模型,我想的是:

投票:
电子邮件地址 - 字符串
验证码 - 字符串
验证 - 布尔值
第一 - 条目
第二 - 条目
第三 - 条目

其中 Entry 是我的 rails 应用程序中的另一个模型。我怎么可能有这种归属关系?因为我想运行查询,例如获得票数最高的条目以获得第一名。这是解决这个问题的最佳方法吗?

4

2 回答 2

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
于 2013-02-16T05:04:16.700 回答
0

我会设计 Vote 对象,使其仅包含一个 user_id 和一个 entry_id。然后,您的应用程序逻辑将强制执行,如果他们已经投票了 3 次,他们将无法再次投票。这样,当您查询最高票数时,您不必为第一个、第二个和第三个条目编写特殊情况。

至于belongs_to 声明,我会说一个投票belongs_to 用户和条目,并且当任何一个依赖对象被销毁时都应该被销毁,因此:

class Vote < ActiveRecord::Base
    belongs_to :user, :dependent => :destroy
    belongs_to :entry, :dependent => :destroy
end
于 2013-02-15T23:48:43.703 回答