我使用Rails SimpleForm gem创建表单。我意识到一个名为&#34的布尔字段;接受" (通常显示为复选框)可以通过更改
显示为一对单选按钮<%= f.input :accepts %>
到
<%= f.input :accepts, as: :radio_buttons %>
但是,我使用通用表单模板为循环中的任何Rails模型动态生成表单,如下所示:
<% some_rails_model.attribute_names.each |attr| %>
<% f.input attr %>
<% end %>
由于我不知道特定属性是否是布尔值(而不是字符串,整数等),我不知道何时添加as: :radio_buttons
。
有没有办法让所有布尔值默认显示为单选按钮?
或者,是否有一些简单的方法来检查attr
是否为布尔值,以便我知道何时添加as: :radio_buttons
?
答案 0 :(得分:0)
我找到了一个解决方案,其中包括检查模型中特定字段是否为布尔值:
<% some_rails_model.attribute_names.each |attr| %>
<% if some_rails_model.columns_hash[attr].type == :boolean %>
<%= f.input attr, as: :radio_buttons %>
<% else %>
<%= f.input attr %>
<% end %>
<% end %>