rails控制台上的JavaScript代码

时间:2014-09-17 13:00:10

标签: javascript jquery ruby-on-rails capybara

我在Cabypara代码中的某处使用binding.pry进行调试,我想使用jQuery检查html元素的值。

我无法使用debugger,然后检查浏览器中的值,因为此代码是用于测试的Cabybara代码示例:

When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
  select(value, :from => field)
  binding.pry
end

如何在rails控制台上通过jQuery代码检查此字段的值为$("##{field}").val()

2 个答案:

答案 0 :(得分:0)

这个答案取决于@ apneadiving的评论:

Rails控制台仅用于服务器端,而不是用于客户端,这些辅助链接:

  1. Ruby-on-Rails is server side
  2. Rails console可用于在不触及网站的情况下使用代码和更改数据服务器端来测试快速创意。

答案 1 :(得分:0)

即使Rails呈现视图,即使在视图的javascript部分中,您也可以调用binding.pry

这不会让您访问客户端代码。就像@apneadiving和@ mohamed-yakout所说的那样,您不能从服务器访问客户端,但是它可以访问在渲染过程中此刻可用的所有服务器端信息。

erb:

<script>
  // some javascript...

  "<% binding.pry %>" 
</script>

// Note: You can not do this from `.js` files that are assets of the view without 
// adding the `.erb` extension to the javascript files.

这可能有助于检查JQueryJavascript正在使用的值,并在过程的此步骤中验证它们是否正确构建。例如:验证用于生成表格行的集合

在您的情况下,您可以验证field的值,但不能验证由字段变量传递的id找到的元素的值。

 $("##{field}").val()

"##{field}"的结果给出的是#unexpected而不是#expected的结果时,这可能会有所帮助,因为您无法从客户端访问服务器端代码来确定渲染问题。

注意:这也翻译为Slim

javascript:
  // some javascript...

  "#{binding.pry}"