我有一些
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正确,我不使用它所以我有点猜测语法.