【问题标题】:Mongoid and simple_form, Boolean type does not create checkboxMongoid 和 simple_form,布尔类型不创建复选框
【发布时间】:2012-06-22 15:58:59
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

  • 我不同意结束这个问题。这是一个真正的问题。 simple_form f.input 无法处理布尔值并呈现预期的复选框。 Simple_form 改为呈现一个文本字段(具有 true 或 false 值)。很烦人(尤其是使用 simple_form 之类的名称 ;-(。如果您使用 rails 标准表单助手,它就可以正常工作。
  • 由于某些原因已关闭。这就是我所做的。希望能帮助到你。 false, :inline_label => "活跃?" ,:as => :boolean %>
  • 我想也许是版主关闭了它,因为他们没有注意到布尔(对象)与布尔(原始)不同,因此认为它没有意义。也许?
  • 这是一个真正的错误和一个有用的问题。不应关闭。
  • @RutgerKarlsson,版主重新打开了这个问题,你在 cmets 中发布的答案就像一个魅力。立即将其作为实际答案发布,并获得您当之无愧的声誉积分! :)

标签: ruby-on-rails-3 mongoid simple-form


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    正如 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)
          结尾
        结尾
      结尾
    结尾
    

    【讨论】:

      猜你喜欢
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2014-10-09
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多