我有一个模型product
它有一个名为active
的属性,在索引im中显示了产品的完整列表。
所以,我想做的是根据产品活动属性将属性active
显示为选中或未选中的复选框,
我一直在尝试使用check_box_tag
但它不起作用,它显示复选框始终处于选中状态,这是我checkboxes
的代码行.
我在带有 postgres 的 db 上使用 smallint,只保存 1 或 0:
<%= check_box_tag "Active", product.active, product.active,disabled: true %>
如果你使用bootstrap 3,你可以使用这个想法
在 product.rb 中设置像这样的一种方法
def active_status
if product.active
"glyphicon glyphicon-ok text-success"
else
"glyphicon glyphicon-minus text-danger"
end
end
在您的节目.html.erb中,您可以输出如下
<i class='<%= product.active_status %>'></i>
如果 product.active 等于真,这将显示绿色绿色复选标记,如果为假,则显示减号
Rails 中的cheack_box_tag
方法可以采用几个不同的参数。根据APIDock(check_box_tag 'eula', 'accepted', false, disabled: true
),确定复选框是否被标记的参数是第三个参数。看起来你正在传递product.active
那个论点。根据你的问题,你说它返回一个 1 或一个 0,它们都是对象,在 Ruby 中被解释为 True。我建议用三元语句来解决这个烂摊子。
<%= check_box_tag "Active", product.active, (product.active == 1 ? true : false), disabled: true %>