тип данных enum с mongoid - PullRequest
2 голосов
/ 18 июня 2011

Я пытаюсь создать перечисление, используя 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 Ответ

3 голосов
/ 18 июня 2011

Нет, это лучший и чистый способ.Я предпочел символы над строками, когда у вас есть известный набор значений для обработки.Поскольку у mongo db нет типа символа, он будет сохранен как строка.

И Mongoid позаботится о преобразовании.Также символы имеют небольшое преимущество над строками.проверьте статью для получения дополнительной информации.

...