- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Action 邮件发送电子邮件时,我们遇到了生产问题。
NameError
undefined local variable or method `to_ary' for #<Mail::Part:0x0000000008e0c998>
Did you mean? to_addrs
missing_method
使其起作用。
let(:part) { Mail::Part.new }
it 'returns self' do
allow_any_instance_of(Mail::Message).to receive(:method_missing).and_raise(NameError, 'error part')
expect([part].flatten).to eq [part]
end
require 'mail'
module Mail
class Part < Message
# monkey patched due to same behaviour like
# https://yehudakatz.com/2010/01/02/the-craziest-fing-bug-ive-ever-seen/v
def method_missing(name, *args, &block)
begin
super
pp :hello
rescue NameError => e
return [self] if name.try(:to_sym) == :to_ary
raise e
end
end
end
end
Array#flatten
在其内容上调用
to_ary
。通常未定义
Mail::Part#method_missing
,但我创建了一个以处理
NameError
中可能的
Mail::Message#method_missing
并返回正确的值。
Mail::Part#method_missing
,调用了
super
并引发了
NameError
,但是抢救没有处理任何事情。由于引发错误,跳过
pp :hello
。
NameError: error part
0) Mail::Part call flatten with NameError returns self
Failure/Error: expect([part].flatten).to eq [part]
NameError:
error part
# ./spec/lib/core_ext/mail/part_spec.rb:13:in `flatten'
# ./spec/lib/core_ext/mail/part_spec.rb:13:in `block (4 levels) in <top (required)>'
# ./spec/active_record_spec_helper.rb:19:in `block (2 levels) in <top (required)>'
def method_missing(name, *args, &block)
return [self]
end
def method_missing(name, *args, &block)
begin
raises_name_error
rescue NameError => e
return [self] if name.try(:to_sym) == :to_ary
raise e
end
end
def raises_name_error
raise NameError, 'error part'
end
NameError
。
最佳答案
解决者
module Mail
class Part < Message
def to_ary
[]
end
end
end
关于ruby-on-rails - 救援 block 未捕获引发的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57624847/
我有以下代码: try do IO.inspect("start task") t = Task.async(fn -> Process.sleep(7000) end) IO.insp
问题与 radis-rb gem 有关。 异常没有被我的救援 block 捕捉到,我的应用程序崩溃了。 我的代码: begin redis = Redis.new puts "WTF?" re
我的 Rakefile 中有许多文件任务,它们看起来像 file 'task1' => 'dep' do sh "some command" end 还有 task :start => :next
我有一个自定义 Rakefile,它调用不同的 file 任务。有时预期的文件不存在,并且 rake 抛出 RuntimeError 并失败。但是,我想在它失败之前做一些事情。那么有什么方法可以挽救
这对我来说似乎没问题,我找不到任何其他说明的文件,但我希望它得到验证。我有一段代码可能会失败,无论出于何种原因,如果它确实失败,请确保在它之后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个
使用 Action 邮件发送电子邮件时,我们遇到了生产问题。 NameError undefined local variable or method `to_ary' for # Did you m
我有这个创建方法: def create ... grid = Tag.find_by_id(story[:tag_id]) or raise GridNotFoundError
我正在学习 ZetCode 上非常棒的 SLite & Ruby 教程并遇到了一个愚蠢的问题。这到底是怎么回事? rescue SQLite3::Exception => e puts "Ex
如何捕获 ctrl-break 组合键引发的异常?我在 Windows 上运行一个 ruby 程序(在 cmd.exe 内),我用这样的东西捕获 ctrl-c : rescue Interrupt
背景 两者 try/rescue和 try/catch是 Elixir 中的错误处理技术。根据 corresponding chapter在介绍指南中。 Errors can be rescued u
我在 Rails 应用程序上安装了 Airbrake。但是,我还想在 500 发生时执行一些其他操作。如何在不干扰 Airbrake 的情况下挽救 500 个错误? 最佳答案 在 Applicatio
我有一个与这段代码相当的情况: i=0 def add_one(i) i+=1 puts "FUNCTION:#{i}" end begin puts "BEGIN:#{i}" rai
我一直在尝试在 Rails 应用程序中实现以下功能,但它似乎什么也没做: rescue Twilio::REST::RequestError => e puts e.message 我注意到它
用户只能编辑自己的帖子,因此我使用以下代码来检查用户是否可以进入编辑表单: def edit @post = Load.find(:first, :conditions => { :use
在尝试解析数组、AR 模型导入等时,CSV 文件有问题似乎是一个常见问题。除了在 MS Excel 中打开并另存为 之外,我还没有找到有效的解决方案> 每天(还不够好!)。 在一个 60,000 行的
我最近使用 Debian Wheezy 双启动了一台 Windows PC。安装顺利,没有错误,但是当我启动到 Debian 时,我立即收到 GRUB 救援: Welcome to GRUB! err
我已按照说明安装 resque,但现在当我尝试使用此命令生成 worker 时,出现连接错误: $ QUEUE=mailer rake environment resque:work --trace
我是一名优秀的程序员,十分优秀!