15

我从 mongoid 和 simple_form 开始。如果我有一个带有 :type => Boolean 的模型并使用 =f.input 在(haml)视图中呈现它,它会创建一个文本输入字段而不是复选框。

文档说布尔值映射到一个复选框,但我怀疑布尔值和布尔值的处理方式不同。

我可以将 :as => boolean 添加到 simple_form 中。

1)这是预期的还是我做错了什么?2) 有没有办法将 Boolean 的一般映射添加到 simple_form?3) 我应该为 simple_form 生成一个问题来纠正这个问题吗?

提前致谢。

4

2 回答 2

12

不幸的是,simple_form 目前不能“自动”与 Mongoid 一起工作。您必须指定as: :boolean.

有迹象表明人们想要集成 Mongoid,但我认为它还没有发生。那么,为什么不试一试呢?以下是问题跟踪器的一些相关票证:

于 2012-10-22T03:50:41.943 回答
0

正如 David 提到的那样,SimpleForm 目前不支持 Mongoid,但您可以快速修补 Mongoid::Document 以使它们像这样很好地播放:

模块 Mongoid
  模块文档
    ARFakeColumn = Struct.new(:type, :limit, :number?)

    def column_for_attribute(attribute_name)
      属性名 = 属性名.to_s
      列名 = 别名字段 [属性名] || 属性名
      if fields[column_name] && fields[column_name].options[:type] == Mongoid::Boolean
        ARFakeColumn.new(:boolean, 100)
      别的
        ARFakeColumn.new(:string, 100)
      结尾
    结尾
  结尾
结尾
于 2014-08-09T07:12:15.403 回答