javascript - rails 4 : Passing variables to javascript

标签 javascript ruby-on-rails variables ruby-on-rails-4

我尝试了很多方法并遵循了Ryan Bates'指导,但无论我做什么,我仍然无法定义。

应用程序.html.erb

<body>
 <%= content_tag :div, id: 'trackers', data: {trackers: User.count} do %>
 <% end %>
</body

应用程序.js.erb

var datadump = ($('#trackers').data('trackers'))
console.log(datadump)
//returns undefined in console

查看页面源码可以看到变量

<div data-trackers="2" id="trackers">

我现在传递 User.count 只是为了简单起见,但我需要传递在应用程序 Controller 的 before_action 中实例化的 @trackers_count。一旦我弄清楚这里的问题,我应该能够解决这个问题。有什么建议吗?

更新 - 我已将所有变量简化为仅跟踪器,而不是 trackers_count 以防止语法错误并更新代码以反射(reflect)这一点。

ANSWER UPDATE - 我选择了正确的答案,因为如果您想传递 ASIDE FROM CURRENT_USER 的任何变量,这些方法非常有效。但是,在 JS 中你不能用 current_user 访问任何东西,因为它在窗口之前加载,所以它不知道 current_user 是谁。这真的很痛苦,但我只是做了很长时间,并通过传入 json 和 ajax 请求访问了我需要的信息。

最佳答案

我曾经做过:

var my_var = <%= User.count %>
console.log(my_var)

如果它是一个整数,这很好用。 但是,如果您想传递对象,请使用:

var my_var = JSON.parse(('<%= (@Users.count) == 0 ? "[]" : Users.first(10).to_json %>')

console.log(JSON.stringify(my_var))

关于javascript - rails 4 : Passing variables to javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28870567/

相关文章:

python - 如何查看引用对象的所有变量?

php - 在 JavaScript 中导出变量

javascript - 获取 AngularJS 中动态生成的下拉列表的选定值

ruby-on-rails - 如何使用 Webpacker 使 jquery 可用于链轮?

ruby-on-rails - Rails 在搜索中组合多个列

ruby-on-rails - rails 测试: RuntimeError: can't modify frozen String

mysql - 节约资源

javascript - 谷歌地图,设置叠加空间

php - 将用户从文件输入中选择的文件路径存储为 session 变量,以便稍后重新填充该字段

javascript - 如何使用 JQuery DatePicker 返回 YYYYMMDD 格式的日期?