use*_*461 3 ruby activerecord ruby-on-rails rescue
在我的Contacts类中,在使用他们的电子邮件地址创建联系人之后,我尝试尽可能多地从FullContact的API中提取联系人数据.
我遇到这个问题,如果FullContact中的"人"不存在一列数据,它会抛出NoMethodError而我无法保存可能存在于联系人中的其余数据,因为我的方法停在错误处.
我怎样才能从NoMethodError中解救并让我的方法继续运行其余的呢?喜欢它只是跳过错误并尝试其余的代码.我已尝试next并continue在我的救援代码中,但这不起作用.
谢谢你的帮助.
class Contact < ActiveRecord::Base
belongs_to :user
after_create do |contact|
contact.delay.update_fullcontact_data
end
def update_fullcontact_data
person = FullContact.person(self.email)
if person.contact_info.given_name.present?
self.name = person.contact_info.given_name
end
if person.contact_info.family_name.present?
self.last_name = person.contact_info.family_name
end
if person.demographics.location_general.present?
self.city = person.demographics.location_general
end
save!
rescue NoMethodError => exception
puts "Hit a NoMethodError"
save!
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |