Как хранить и сравнивать: символы в ActiveRecord (Ruby on Rails)

Я подумал, что было бы хорошо заполнить поле статуса в таблице activeRecord, используя константы. Однако когда дело доходит до проверки того, имеет ли этот статус определенный статус, у меня возникают проблемы.

Если я сделаю следующее,

e = Mytable.new
e.status = :cancelled
e.save

затем заново отыщу запись и попытаюсь сравнить мой статус с символом, проверка не удастся. У меня есть вывод с консоли, чтобы показать это.

irb(main):060:0> e.status.eql?("cancelled")
=> true
irb(main):061:0> e.status.eql?(:cancelled)
=> false
irb(main):062:0> e.status == :cancelled
=> false
irb(main):063:0> e.status == "cancelled"
=> true
irb(main):064:0> e.status == :cancelled.to_s
=> true

Есть ли лучший способ сохранить статус в записи? Есть ли способ проверить, равно ли текущее значение поля символу: без преобразования символа: в строку? Я думаю, что может быть оператор, о котором я не знаю.

25
задан seanyboy 27 January 2012 в 17:52
поделиться