问题标签 [gon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1342 浏览

ruby-on-rails - 使用 gon 和 rspec 的测试方法

我有一个在 gon 的帮助下向 js 发送变量的函数。

我想测试这个函数,即使用 rspec 确保该方法返回正确的值。

但是,当测试用例到达变量发送到 gon 的行时,我收到以下错误消息。

我检查了 foo 的值,它不是 Nil,所以 gon 必须是 Nil。我相信错误是我没有正确地包含 gon。这是我的 Gemfile 的 rspec 部分

那么我怎样才能让 rspec 与 gon 很好地配合呢?(我也尝试将 gon 包含在我的规范文件中,但没有成功)

0 投票
1 回答
147 浏览

javascript - 使 Rails javascript 代码干燥

我有两个文件使用一些常见的 javascript 代码和 rails gon gem。

所以对于文件 1:file1.js看起来像这样

对于文件 2:file2.js.erb我有,

现在我正在考虑通过提取以下公共代码来使我的代码干燥file3.js

由于我是 javascript 新手,我不确定如何填充 c 以便两者都能file1.js正常file2.js.erb工作。

  1. 如何将 var c 作为参数从 file1 和 file2 传递给公共文件,传递给公共代码(我们称之为file3.js
  2. 我是否只是执行类似<%= javascript_include_tag "file3.js" %>infile2和类似 in 的file1操作来访问公共代码?

最终我希望file1.js看起来像:

看起来file2.js.erb

0 投票
1 回答
1809 浏览

javascript - Rails 4.2 中 ApplicationController:Class 的未定义局部变量或方法“gon”

我似乎无法让 gon gem 与 rails 4.2.0 一起使用。我收到“未定义的局部变量或方法 `gon' for #”我是否正确使用它?此外,我的布局 application.html.erb 的标题中确实有 <%= include_gon(:init => true) %>。

应用控制器

应用程序.js

应用程序.html.erb

0 投票
1 回答
77 浏览

javascript - 正则表达式帮助从 Javascript 块中获取变量值

我有一个需要从中提取值的 JavaScript 块。它看起来像这样:

我需要获得 id 的价值。我尝试了多种选择,但似乎没有奏效。例如script type="text/javascript" gon.user.id="(.+?)"

PS:gon是用于在 Javascript 块中传递动态变量的 gem。

0 投票
1 回答
705 浏览

javascript - 如何在 rails 视图(slim 文件)中定义 gon 变量?

我有很多视图需要将 ruby​​/rails 数组传递给项目中的 javascript/jquery 代码。当我在控制器代码中定义 gon 变量时,我使用的 gon gem 可以正常工作,但是如何在视图代码(slim 文件)中分配变量?

例如,如果我们在控制器中有以下代码:

然后尝试在我的 jquery/javascript 代码中提醒它,如下所示:

它工作正常。

如何通过在视图文件中定义变量来实现相同的目的(我应该能够在 slim 文件中定义 gon.test_var)?

编辑:请注意,我们分配给变量的值是 ruby​​ 变量,而不是静态字符串或数字。

0 投票
1 回答
462 浏览

ruby-on-rails-3 - 测试单元自动运行器在 rake 任务上产生“无效选项”错误?

自从我安装了 gon,我的 rake 任务不再工作了。

我在用着:

我无法卸载测试单元,因为:

rake -T例如,如果我:

这是罪魁祸首:

有无rspec,同样的错误。

当前解决方案:我以 application.rb 底部的这些行结束:

第一个链接

第二个链接

有人有更好的主意吗?

谢谢!

ps:https ://github.com/gazay/gon/issues/206

0 投票
1 回答
743 浏览

javascript - 将变量传递给 javascript rails

使用 rails cast http://railscasts.com/episodes/324-passing-data-to-javascript?autoplay=true

将变量从我的控制器传递给 javascript。

我有一个按钮,当我点击它时,我希望它显示赞成票的数量。

我用gon。

但是,当我尝试运行它时,我的警报说即使我在控制器中设置了变量也没有定义

_source.html.erb

应用程序.html.erb

sources_controller.rb -> 赞成行动

upvote.js.erb

路线.rb

欣赏想法,谢谢

0 投票
2 回答
1098 浏览

jquery - GON - 没有在 js.erb + Rails 5 中获得价值

宝石文件

这是我的 application.html.erb 文件。

现在,在许多页面(索引)上,我使用 ajax 删除了我的记录。喜欢

在 Controller 中,销毁操作代码。

现在,它去destroy.js.erb 文件

现在,console.log 什么都没有显示并且会出现警报,但它显示我“未定义”

谁能帮我上面的代码有什么问题,所以我可以在 js.erb 文件中使用 gon 吗?

提前致谢

0 投票
0 回答
499 浏览

javascript - Ruby on Rails Gon Gem 与 cookie 或常规 AJAX 请求

我已经在 Ruby on Rails 上编程了一段时间,并且能够在我的 javascript 代码中轻松地从我的控制器访问数据,作为一个初学者,我遇到了Gon Gem。老实说,它非常简单地解决了这个问题,但对 RoR 初学者来说有点神秘。

深入研究 gem 的源代码,我现在了解它是如何工作的:您要求gon传递给 JS 的变量由 gem 跟踪并插入到由<script />标签呈现的视图上的erb标签中

这使得该gon对象在您的 JS 中可用,因为它将它作为window属性注入。

我的问题是,这种做法有多好?坦率地说,将 JS 代码动态注入站点只是为了从浏览器中的服务器访问一些数据似乎有点可疑。这不是更好的做法吗

  • 只是通过 RoR 服务器端的端点和来自 JS 前端的 AJAX 调用使数据可用?

或者

  • 在 RoR 控制器上的相应操作期间在 cookie 上设置所需的数据,然后从 JS 中读取它?
0 投票
0 回答
251 浏览

javascript - 如何在 Jasmine 中的 JS 源文件之前加载帮助程序

这个问题特别是因为我正在使用gon,但从概念上讲它可以适用于其他情况,所以我试图扩大一点。Gon 是一个漂亮的 gem,它允许你在 Rails 控制器中声明一个变量,然后在你的 Javascript 中使用它。例如:

具体来说,这是如何发生的,Gon 注入了一段声明全局变量的脚本,如下所示:

我使用 Jasmine 测试的代码如下所示:

如您所见,gon立即使用!我的问题是 Jasmine 一直说gon尚未定义,所以我不确定如何以语义上合理的方式“注入”它。我能想到的唯一方法是在加载我正在测试的文件之前创建一个假.js文件并在我的文件中将其作为源文件。javascript.yml即,它看起来像这样:

但这不是一个可持续的解决方案,因为那样我就无法gon_variables.js针对不同的规格更改文件中的虚拟变量......

通过最后一句话,我的意思是我一直在进行故障排除,并发gon现在夹具或规范文件本身中声明变量将不起作用。即以下两个都不能解决问题

这让我回到了我的问题。我的调试显然表明,其中的 JS 文件jasmine.yml是在固定装置或规范文件(及其之前的操作)之前加载的。因此,你还能如何在 JS 文件之前加载动态代码jasmine.yml?有没有我可以使用的助手或...?请记住,我想根据规范更改在 JS 文件之前加载的代码。即,有时我想拥有,gon.this = "that"但有时我想要gon.this = "those"