javascript - ERB Javascript 条件错误

标签 javascript ruby-on-rails ruby

我正在尝试在我的 Rails 应用程序的 erb 文件中运行以下行:

<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

我如何处理带有 ruby​​ 变量的 javascript 条件?

最佳答案

在 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>

关于javascript - ERB Javascript 条件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095511/

相关文章:

ruby-on-rails - 类似于 Twitter Bootstrap 的 CSS 工具包?

ruby-on-rails - 如何将符号转换为字符串(即带前导 :) ruby to_yaml

javascript - 当天数增加时增加下个月的 Javascript 日期对象?

主要提供 document/onready 功能的 Javascript 框架

javascript - nodejs中的多个异步mongo请求

ruby-on-rails - 如何将从 s3 检索到的对象写入文件?

ruby-on-rails - 可能的 Poltergeist 内存泄漏 - 如何使用 session.driver.quit?

ios - Facebook SDK iOS 连接的 Rails-api 身份验证?

ruby-on-rails - 如何将两种不同的自定义注册表单与两种不同的设计和 rails 模型一起使用?

javascript - 递归超出了最大调用堆栈大小