javascript - 在脚本标签中使用 Ruby 变量

标签 javascript ruby-on-rails ruby

我正在我的 Rails Controller 中定义一个对讲事件,如下所示:

object_controller.rb

@object.save
@intercom_event = 'object-saved'

在我的 application.html.erb 中存在的部分中我正在尝试运行这个脚本:

<script>
  Intercom('trackEvent', '<%= @intercom_event %>');
</script>

脚本运行并将事件发送到 Intercom,就像它应该的那样。我以为我将 ruby​​ 变量放入 <script>正确标记,但 @intercom_event 的输出除外是:<%= @intercom_event %>当它应该是:object-saved

另外,如果我要包装这个<script> if 语句中的标记(这样它就不会在每次重新加载页面时发送事件),如下所示:

<% if @intercom_event.present? %>
  <script>
    Intercom('trackEvent', '<%= @intercom_event %>');
  </script>
<% end %>

它完全忽略脚本,即使 @intercom_event被定义为。

最佳答案

通过查看参数是否存在而不是 @intercom_event 变量来使其工作

<% if params[:intercom].present? %>
  <script>
    Intercom('trackEvent', '<%= params[:intercom] %>');
  </script>
<% end %>

关于javascript - 在脚本标签中使用 Ruby 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26020664/

相关文章:

ruby - 为什么 Ruby 1.9.2 给出 : puts(true and false)? 的语法错误

c# - Javascript var 作为 c# mvc3 razor 中的参数

javascript - MongoDB -- client.open() 返回 "undefined in not a function"

javascript - 滚动魔法。向一个元素添加多个类

javascript - 将用户创建的 javascript 保存在数据库中是否安全?

ruby-on-rails - Rails 中的分组选择

javascript - 使用href链接动态添加div

ruby-on-rails - 更改资源路径

ruby - Ruby 中的闭包

ruby-on-rails - Resque 可以并行运行作业吗?