我在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()
?
答案 0 :(得分:0)
这个答案取决于@ apneadiving的评论:
Rails控制台仅用于服务器端,而不是用于客户端,这些辅助链接:
答案 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.
这可能有助于检查JQuery
或Javascript
正在使用的值,并在过程的此步骤中验证它们是否正确构建。例如:验证用于生成表格行的集合
在您的情况下,您可以验证field
的值,但不能验证由字段变量传递的id找到的元素的值。
$("##{field}").val()
当"##{field}"
的结果给出的是#unexpected
而不是#expected
的结果时,这可能会有所帮助,因为您无法从客户端访问服务器端代码来确定渲染问题。
注意:这也翻译为Slim
javascript:
// some javascript...
"#{binding.pry}"