jquery – 如何将ruby字符串传递给rails中的application.js文件

我有一些
Javascript,我需要分配一个ruby字符串.在这种情况下,我编写了一些需要登录用户电子邮件地址的javascript函数.我正在使用haml.

在我的应用程序布局文件(application.html.haml)中,我可以这样做,它将工作:

%script{:type => "text/javascript", :charset => "utf-8"}
  $(document).ready(function () {
  alert('hello'+ "#{User.find(current_user).email}");
  });

但是我的应用程序有一个专用的js文件. application.js文件

如何从我的视图中将登录用户的电子邮件地址传递给application.js文件?

application.js中的以下内容不起作用.

$(document).ready(function () {
  alert('hello' + "#{User.find(current_user).email}");
});

最佳答案 您可以在全局JavaScript变量中设置用户信息:

%script{:type => "text/javascript", :charset => "utf-8"}
  var user = { email: "#{escape_javascript User.find(current_user).email}" }
  $(document).ready(function () {
    alert('hello ' + user.email);
  });

然后在application.js中关闭:

$(document).ready(function() {
  alert('hello ' + user.email);
});

你的页面应该两次说“你好”.

另外,current_user通常不会是User实例吗?如果是这样,则current_user.email应该足够,如果没有,那么设置然后你想在你的控制器中设置@user = …然后在你的视图中使用@ user.email.

我希望我的HAML正确,我不使用它所以我有点猜测语法.

点赞