我尝试了许多方法,并遵循Ryan Bates'指南,但无论我做什么,我仍然没有定义。
application.html.erb
<body>
<%= content_tag :div, id: 'trackers', data: {trackers: User.count} do %>
<% end %>
</body
application.js.erb
var datadump = ($('#trackers').data('trackers'))
console.log(datadump)
//returns undefined in console
查看页面源代码我可以看到变量
<div data-trackers="2" id="trackers">
为了简单起见,我暂时传递了User.count,但我需要传递@trackers_count,它是在应用程序控制器的before_action中实例化的。不过,一旦我弄清楚了这里的问题,我就应该能够解决这个问题。有什么建议吗?
UPDATE -我已经将所有变量简化为跟踪器,而不是trackers_count,以防止任何语法错误,并在此处更新代码以反映这一点。
答案更新-我选择了正确的答案,因为如果您想传递CURRENT_USER之外的任何变量,这些方法都工作得很好。但是,您不能在JS中使用current_user访问任何内容,因为它在窗口之前加载,因此它无法知道current_user是谁。这真的很痛苦,但我只是走了很长一段路,通过传入json和一个ajax请求来访问我需要的信息。
https://stackoverflow.com/questions/28870567
复制相似问题