枚举数据类型与mongoid

时间:2011-06-17 22:16:20

标签: ruby-on-rails-3 mongodb mongoid

我正在尝试使用mongoid创建一个枚举

class Vote
  include Mongoid::Document
  field :value, :type => Symbol # can be :aye, :nay, :abstain
  #field :group_type, :type => Integer

  belongs_to :user
  embedded_in :bill

end

我将在User类的方法中使用它:

  def vote_on(bill, value)
    bill.votes.create(:value => value, :user_id => self.id)
  end

我正在考虑设置一个限制为:aye,:nay,:abstain的验证,但似乎有更好的方法可以做到这一点。

1 个答案:

答案 0 :(得分:3)

不,它是一个更好的&干净的方式。当您有一组已知的值要处理时,我首选字符串。由于mongo db没有符号类型,因此它将存储为字符串。

mongoid将负责转换。符号也比字符串略有优势。查看article了解更多信息。