2015-12-04 2 views
1

Я пытаюсь запустить следующие строки в моем приложении Rails в ERB файле:ERB Javascript условную ошибка

<script> 
    if("<%=current_user%>".length>0){ 
    console.log('set mixpanel current user'); 
    mixpanel.identity("<%=current_user.id%>"); 
    }else{ 
    console.log('set mixpanel identity to 0'); 
    mixpanel.identify('0'); 
    } 
</script> 

Я получаю сообщение об ошибке с линией, содержащей <%=current_user.id%>, который, кажется, анализируется, даже если условная не удовлетворено:

Called id for nil, which would mistakenly be 8 -- if you really wanted the id of nil, use object_id 

Как обработать условие javascript с рубиновой переменной?

ответ

4

В файле erb мы можем вставлять код ruby ​​с использованием скриптов: <% %>.

Это должно работать:

<script> 
    <% if current_user %> 
    console.log('set mixpanel current user'); 
    mixpanel.identity("<%=current_user.id%>"); 
    <% else %> 
    console.log('set mixpanel identity to 0'); 
    mixpanel.identify('0'); 
    <% end %> 
</script> 
+1

спасибо! это сработало. – scientiffic

0

current_user вместо "<%=current_user%>".length>0 будет работать, я думаю.

Смежные вопросы