我从mongoid和simple_form开始。如果我有一个型号:type =>布尔值并使用= f.input在(haml)视图中呈现它,它创建一个文本输入字段而不是复选框。
doc说布尔值映射到一个复选框,但我怀疑布尔值和布尔值的处理方式不同。
我可以添加:as =>布尔值到simple_form。
1)这是预期还是我做错了什么? 2)有没有办法添加布尔到simple_form的一般映射? 3)我应该为simple_form生成一个问题来纠正这个问题吗?
提前致谢。
答案 0 :(得分:12)
不幸的是,simple_form目前不能与Mongoid“自动”工作。您必须指定as: :boolean
。
有迹象表明人们希望Mongoid整合,但我认为它还没有发生。那么,为什么不试一试呢?以下是问题跟踪器的一些相关票证:
答案 1 :(得分:0)
正如大卫所说,目前SimpleForm不支持Mongoid,但是你可以快速修补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