Rails属于不同的列名

时间:2013-02-15 23:38:48

标签: ruby-on-rails-3

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

  

投票:
  电子邮件地址 - 字符串
  验证码 - 字符串
  已验证 - 布尔
  首次入境   第二次入境   第三 - 进入

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

2 个答案:

答案 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