我有一个查询:
ModalType.where(id: modal['modal_id']).take.template
问题是我可能会在查询找不到任何id:modal [' modal_id']的情况下运行,然后我收到错误
undefined method `template' for nil:NilClass
我怎样才能写出会采取的措施?但是只有在where(id:modal_id)返回某些东西(=找到了)的时候?
答案 0 :(得分:3)
使用Ruby< 2.3:
object = ModalType.where(id: modal['modal_id']).take
if object
object.template
else
# I don't know. it's up to you
end
或
ModalType.where(id: modal['modal_id']).take.try(:template)
使用Ruby> = 2.3,您可以使用安全导航操作符:
template = ModalType.where(id: modal['modal_id']).take&.template