仅当变量确实存在(变量的名称是@filter)时,我才尝试做某事,问题是我似乎无法弄清楚如何让代码工作。我不断得到
undefined method `male_filter' for nil:NilClass
即使第一个 if 应该做的伎俩。这是javascript的实际代码:
$(document).ready(function(){
if(typeof <%=@filter%>!='undefined'){
if(typeof <%=@filter.male_filter%>!='undefined'){
if(<%=@filter.male_filter%>=='18'){
$('#18M').addClass('active');
}
else if(<%=@filter.male_filter%>=='21'){
$('#21M').addClass('active');
}
else if(<%=@filter.male_filter%>=='24'){
$('#24M').addClass('active');
}
}
}
}
我还尝试在名为 filterExists 的控制器中添加一个布尔值,并执行以下操作:
var filterExists=<%=@filterExists%>;
if(filterExists==true){...}
但我仍然遇到同样的错误:
undefined method `male_filter' for nil:NilClass