Mongoid и simple_form, тип Boolean не создает флажок

Я начинаю с mongoid и simple_form. Если у меня есть модель с: type = > Boolean и визуализировать ее в представлении (haml) с = f.input, он создает поле ввода текста, а не флажок.

Документ говорит, что булевы сопоставления с флажком, но я подозреваю, что логические и булевы не обрабатываются одинаково.

Я могу работать с добавлением: as = > boolean к simple_form.

1) Является ли это ожидаемым, или я делаю что-то неправильно? 2) Есть ли способ добавить общее отображение булевой в simple_form? 3) Должен ли я создать проблему для simple_form, чтобы исправить это?

Спасибо заранее.

Ответы

Ответ 1

К сожалению, simple_form в настоящее время не работает автоматически с Mongoid. Вы должны указать as: :boolean.

Появились признаки того, что люди хотят интеграции с монголами, но я не думаю, что это произошло еще. Итак, почему бы не дать ему выстрел? Вот несколько соответствующих билетов от трекера:

Ответ 2

Поскольку Дэвид упоминал, что Mongoid не поддерживается SimpleForm в этот момент, но вы можете быстро скопировать Mongoid:: Document, чтобы заставить их играть так:

module Mongoid
  module Document
    ARFakeColumn = Struct.new(:type, :limit, :number?)

    def column_for_attribute(attribute_name)
      attribute_name = attribute_name.to_s
      column_name = aliased_fields[attribute_name] || attribute_name
      if fields[column_name] && fields[column_name].options[:type] == Mongoid::Boolean
        ARFakeColumn.new(:boolean, 100)
      else
        ARFakeColumn.new(:string, 100)
      end
    end
  end
end