我目前有这个:
<% if h.ab_template.AB_filterParent == 0 && h.status != 'geo_enabled' %>
我想做的是说是否h.ab_template.AB_filterParent == 0 ||零。我该怎么办?
我尝试了这个但是没有用:
<% if (h.ab_template.AB_filterParent == 0 || nil) && h.status != 'geo_enabled' %>
很想知道我错误输入或错误实施的内容!
干杯
答案 0 :(得分:1)
如果您确定h.ab_template.AB_filterParent
始终是一个数字(可以用引号括起来),那么您可以尝试以下
<% if h.ab_template.AB_filterParent.to_i == 0 && h.status != 'geo_enabled' %>
否则,如果h.ab_template.AB_filterParent
有可能是“abc”,“0asd”等,那么请尝试:
<% if (h.ab_template.AB_filterParent.nil? || h.ab_template.AB_filterParent == 0) && h.status != 'geo_enabled' %>
答案 1 :(得分:1)
一般来说,零和零并不意味着同样的事情。通过在迁移表中指定默认值零,尝试消除AB_filterParent在您点击此代码之前为零的可能性。我不知道你的模型是如何的,所以我甚至无法展示如何做到这一点。
使用to_i ==
0的主要问题是它只有在AB_filterParent为整数或零时才有效。
0.5.to_i == 0
"asdasd".to_i == 0
所以很奇怪。
另一种方法是在动作或其他模型方法中初始化它,甚至是after_create回调。