草庐IT

pry-rescue

全部标签

ruby-on-rails - 在 rescue_from 中使用什么异常类来捕获 422 错误?

我正在尝试在我的应用程序中显示自定义422页面。我应该在rescue_from声明中捕获的异常类是什么?这是我处理RecordNotFound异常的方式:rescue_fromActiveRecord::RecordNotFound,:with=>:render_404 最佳答案 好吧,有一个列表将异常类映射到适当的状态代码。你通过这个documentation.在您的例子中,有三个:ActiveRecord::RecordInvalid、ActiveRecord::RecordNotSaved和ActionController::

.NET 相当于 Ruby 的 begin/rescue/else

Ruby有一个elseblock,可以进入begin/rescue(对于.NET用户来说是try/catch)begin#somecoderescue#ohnoes!Catcheserrorslikecatchblocksin.NETelse#onlyexecuteswhenNOerrorshaveoccuredensure#alwaysexecutes-justlikethefinallyin.NETendelseblock中的代码只有在没有出现错误时才会执行。.NET中是否有提供此功能的结构? 最佳答案 在.NET中,你可以在#

ruby - 在类里面写 Rescue 还是不写?

我理解救援的概念——我的问题是:当我实际创建一个对象时,我应该在我的类中编写我的beginrescueend代码还是应该在类之外编写它?如果我有两个文件-一个是我的类(class),一个是我调用那个类(class)的文件,我应该把我的救援脚本放在哪个脚本中?也许没关系,或者我应该同时使用两者。只是想知道这方面的最佳实践是什么...... 最佳答案 异常处理的一般规则是在最低抽象级别捕获异常,这样可以就如何处理错误做出明智的选择。如果您可以在类方法中做出明智的选择,请在其中包含您的救援逻辑。如果您在调用者级别有更多上下文,并且每次调用

ruby-on-rails - 当你只传递一个对象时 pry 使用什么函数或方法?

我已经加载了pry并且正在调试一些对象。很多时候,如果我只输入对象的名称,pry就会自行输出它的表示形式,而且看起来很棒。示例:例如,这就像在pry提示符下做类似的事情:[1]pry(main):1>@myobj结果:困惑:我没有调用pp@myobj或y@myobj或ap@myobj或@myobj.inspect如果我确实调用其中任何一个,我得到的输出看起来会有所不同(并且格式不那么漂亮)问题:调用什么方法以这种方式输出对象?我可以在脚本文件中使用该方法来使用同样漂亮的格式输出格式吗?(即执行pry然后运行​​load/path/to/my/file.rb?)

ruby - 如何使用 Pry 测试类似过滤器的 Ruby 脚本?

我有一个简单的脚本来处理来自STDIN的行。有时会出现异常-一些UTF-8转换错误-我想检查变量,是什么导致了错误。我在我的文件中使用了以下语法(让我们调用filter.rb),但我从未收到Pry提示:#!/usr/bin/rubyrequire"pry"n=0whileline=STDIN.getsdobeginn=n+1raise"anexception"ifn==2rescue=>ebinding.pryendend当我发布时:catdata.txt|rubyfilter.rb我在屏幕上看到:5:whileline=STDIN.getsdo6:begin7:n=n+18:rais

ruby-on-rails - Rails rescue_from 停止执行流程

我在使用rescue_from时遇到问题classSimpleError如您所见,在这段代码中,我只是在操作开始之前引发了一个异常,该异常被rescue_exception方法捕获。问题是,在我捕捉到异常之后,应用程序流停止并且永远不会到达操作代码。异常解救后是否可以继续执行? 最佳答案 简短的回答,没有。rescue_from旨在处理未捕获的异常。如果您想为Controller中的每个操作捕获特定异常,我建议使用around_action.classMyController 关于rub

ruby - 你如何安装 pry 插件?

我读过这些很棒的pry插件(例如pry-debugger、pry-stack_explorer),但是经过将近30分钟的搜索,我找不到任何关于如何安装它们的文档.我去了他们的githubsite,prywiki并阅读/观看了几个教程,但其中没有关于安装的内容。 最佳答案 每个以pry-开头的pry插件都是自动加载的。您只需要geminstallpry-name。Here是关于插件的链接(也创建插件)和确切的引用:AvalidPrypluginisagemthathasthepry-prefix(suchasthepry-docgem

ruby - rescue_from 考拉异常

也许初学者的问题:我正在尝试使用Koala从facebook检查我的用户权限。在某些情况下,我会被抛出一个错误。所以我只想捕获它并重定向到重新验证。defcheck_facebook_permissionsiftoken=current_user.try(:authentications).find_by_provider('facebook').try(:token)graph=Koala::Facebook::API.new(token)permissions=graph.get_connections('me','permissions')session[:facebook]={

ruby-on-rails - 无法在 pry 中访问本地方法变量

我有以下方法:defupdateloan=Loan.find(params[:id])pryrespond_withloan.update(loan_params)end所以我希望当我在控制台中窥探时,我应该能够键入loan并获取对象,但我却得到“未定义的局部变量或方法‘loan’”,我是不是做错了什么? 最佳答案 您需要使用binding.pry来加载当前对象范围内的pry(我认为pry只是加载一个没有范围的prysession。) 关于ruby-on-rails-无法在pry中访问本

ruby - 使用带有 require/rescue 的单行条件

如果require不成功,我想避免错误。我可以用:beginrequire'unexisting_script'rescueLoadErrorend我尝试用单行条件做同样的事情:require'unexisting_script'rescueLoadError并得到错误nosuchfiletoload--unexisting_script(LoadError)对于其他异常/命令,我对单行救援没有问题,这有效:1/0rescueZeroDivisionError我也试过把命令括起来,但没有成功:(require'unexisting_script')rescueLoadError我可以用