変数が存在する場合にのみ何かを実行しようとしています (変数の名前は @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