Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript代码段中的Ruby变量不适用于Slim lang_Javascript_Ruby On Rails_Ruby_Slim Lang - Fatal编程技术网

JavaScript代码段中的Ruby变量不适用于Slim lang

JavaScript代码段中的Ruby变量不适用于Slim lang,javascript,ruby-on-rails,ruby,slim-lang,Javascript,Ruby On Rails,Ruby,Slim Lang,现在这让我紧张了两个晚上——我正在安装Intercom.io的JavaScript,这需要在结束标记之前放置一段代码,如下所示: <script id="IntercomSettingsScriptTag"> window.intercomSettings = { // TODO: The current logged in user's email address. email: "john.doe@example.com", // TODO: The current logged

现在这让我紧张了两个晚上——我正在安装Intercom.io的JavaScript,这需要在结束标记之前放置一段代码,如下所示:

<script id="IntercomSettingsScriptTag">
window.intercomSettings = {
// TODO: The current logged in user's email address.
email: "john.doe@example.com",
// TODO: The current logged in user's sign-up date as a Unix timestamp.
created_at: 1234567890,
app_id: [redacted]
</script>
上面的崩溃很小,页面甚至无法加载。我也尝试过在代码片段之前使用javascript:Slim函数声明变量,如上面的链接所示。不走运

还有人知道如何将变量传递到JavaScript中吗?我会非常感激你的指点。谢谢

解决

这是有效的代码:

- if user_signed_in?
  script id="IntercomSettingsScriptTag"
    |
      window.intercomSettings = {
      // TODO: The current logged in user's full name
      name: "#{@current_user.full_name}",
      // TODO: The current logged in user's email address.
      email: "#{@current_user.email}",
      // TODO: The current logged in user's sign-up date as a Unix timestamp.
      created_at: #{@current_user.created_at.to_i},
      app_id: "eac384da45babdcac214d669601f1a29632f0d97"
      };

这可能会解决它

script id="IntercomSettingsScriptTag"
  |
    window.intercomSettings = {
      // TODO: The current logged in user's email address.
      email: "#{@user.email}",
      // TODO: The current logged in user's sign-up date as a Unix timestamp.
      created_at: #{@user.created_at.to_i},
      app_id: [redacted]
    };

这可能会解决它

script id="IntercomSettingsScriptTag"
  |
    window.intercomSettings = {
      // TODO: The current logged in user's email address.
      email: "#{@user.email}",
      // TODO: The current logged in user's sign-up date as a Unix timestamp.
      created_at: #{@user.created_at.to_i},
      app_id: [redacted]
    };

是的,非常感谢你的提示!这就是最终对我起作用的原因:

- if user_signed_in?
  script id="IntercomSettingsScriptTag"
    |
      window.intercomSettings = {
      // TODO: The current logged in user's full name
      name: "#{@current_user.full_name}",
      // TODO: The current logged in user's email address.
      email: "#{@current_user.email}",
      // TODO: The current logged in user's sign-up date as a Unix timestamp.
      created_at: #{@current_user.created_at.to_i},
      app_id: "eac384da45babdcac214d669601f1a29632f0d97"
      };

我只是一个初学者,所以看到它正常工作真的很令人兴奋。不可思议

是的,非常感谢你的提示!这就是最终对我起作用的原因:

- if user_signed_in?
  script id="IntercomSettingsScriptTag"
    |
      window.intercomSettings = {
      // TODO: The current logged in user's full name
      name: "#{@current_user.full_name}",
      // TODO: The current logged in user's email address.
      email: "#{@current_user.email}",
      // TODO: The current logged in user's sign-up date as a Unix timestamp.
      created_at: #{@current_user.created_at.to_i},
      app_id: "eac384da45babdcac214d669601f1a29632f0d97"
      };

我只是一个初学者,所以看到它正常工作真的很令人兴奋。不可思议

修好了,非常感谢!我也使用了错误的变量-我实际上需要{@current_user.email}。不过我有一个新问题-如果没有用户登录,Slim会抛出一个错误,因为当前用户没有变量,页面也不会加载。我现在能做什么?!您可以在加载代码之前设置此选项:current_user | |=如果在current_user上使用方法,它将强制当前_user获取一个空变量,该变量将不起作用。您还可以设置一个三元表达式来测试当前用户是否存在:current_user?current_user.email:我认为最好的解决方案最后但并非最不重要的一点是,如果你只使用current_user作为几种方法,你可以对每种方法都这样做:current_user。尝试:email,以防止出现任何异常。这就解决了问题,非常感谢!我也使用了错误的变量-我实际上需要{@current_user.email}。不过我有一个新问题-如果没有用户登录,Slim会抛出一个错误,因为当前用户没有变量,页面也不会加载。我现在能做什么?!您可以在加载代码之前设置此选项:current_user | |=如果在current_user上使用方法,它将强制当前_user获取一个空变量,该变量将不起作用。您还可以设置一个三元表达式来测试当前用户是否存在:current_user?current_user.email:我认为最好的解决方案最后但并非最不重要的一点是,如果你只使用current_user作为几种方法,那么你可以对每种方法都这样做:current_user;例如,在StackOverflow中,如果有人问了一个问题,除非没有人回答正确的问题,你不应该发布答案,而应该编辑你的第一篇文章来展示这一点;例如,在StackOverflow中,如果有人问了一个问题,除非没有人回答正确的问题,那么你不应该发布答案,而应该编辑你的第一篇文章来展示这一点。