我正在开发一些投票软件,用户可以在其中为 3 个不同的条目投票。对于投票模型,我想的是:
投票:
电子邮件地址 - 字符串
验证码 - 字符串
验证 - 布尔值
第一 - 条目
第二 - 条目
第三 - 条目
其中 Entry 是我的 rails 应用程序中的另一个模型。我怎么可能有这种归属关系?因为我想运行查询,例如获得票数最高的条目以获得第一名。这是解决这个问题的最佳方法吗?
我正在开发一些投票软件,用户可以在其中为 3 个不同的条目投票。对于投票模型,我想的是:
投票:
电子邮件地址 - 字符串
验证码 - 字符串
验证 - 布尔值
第一 - 条目
第二 - 条目
第三 - 条目
其中 Entry 是我的 rails 应用程序中的另一个模型。我怎么可能有这种归属关系?因为我想运行查询,例如获得票数最高的条目以获得第一名。这是解决这个问题的最佳方法吗?
用户模型:
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
我会设计 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