我正在我的 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/