我已经在Ruby on Rails上编程了一段时间,并且能够在我的javascript代码中轻松地从我的控制器访问数据,作为初学者,我遇到了Gon Gem.它很简单地解决了这个问题,但对于RoR初学者来说有点神秘,说实话.
深入了解gem的源代码,我现在了解它是如何工作的:您要求gon传递给JS 的变量由gem跟踪并插入到由<script />标记呈现的视图上的erb标记中
<%= Gon::Base.render_data %>
Run Code Online (Sandbox Code Playgroud)
这使得gon对象可以在JS中使用,因为它将它作为window属性注入.
我的问题是,这种做法有多好?坦率地说,将JS代码动态注入站点只是为了从浏览器中的服务器访问一些数据似乎有点可疑.这两种方式都不是更好的做法
要么