simple_form将boolean转换为带标签的下拉列表

时间:2013-08-10 10:16:12

标签: ruby-on-rails simple-form

我的模型中有一个布尔列。说它叫做isType1。

现在在我的表单中,我希望有一个包含两个值的下拉列表(如果布尔值为true,则为type1,如果布尔值为false,则为type2),而不是复选框或单选按钮。

这可能吗?

现在我将它显示为单选按钮:

<%= f.input :isType,  :as => :radio, :label => "Type"%>

我更喜欢如果我有一个下拉列表,用户可以选择type1或type2而不将模型更改为字符串而不是布尔值。

感谢。

3 个答案:

答案 0 :(得分:16)

这就是我想要的:

<%= f.input :isType, 
            :as => :select, 
            :collection => [['Type1',false],['Type2',true]], 
            :include_blank => false, 
            :label => "Type" %>

答案 1 :(得分:1)

只需使用select:

<%= f.input :isType, :as => :select, :label => "Type"%>

答案 2 :(得分:0)

当您使用 include_blank: false 时,您必须添加 disabled: [] 以允许在选择中不禁用假值。

<%= f.input :isType, 
            as: :select, 
            collection: [['Type1',false],['Type2',true]], 
            include_blank: false, 
            disabled: [] %>