Ruby on rails Rails/活动记录-如何使用&x27;以';如果有任何匹配的记录
我有一个疑问:Ruby on rails Rails/活动记录-如何使用&x27;以';如果有任何匹配的记录,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个疑问: ModalType.where(id: modal['modal_id']).take.template 问题是,如果查询没有找到任何id:modal['modal_id'],那么我可能会运行,然后得到错误 undefined method `template' for nil:NilClass 我怎样才能写一些“take”的东西,但前提是where(id:modal_id)返回一些东西(=找到了)?使用Ruby=2.3,您可以使用安全导航操作符: template = Mo
ModalType.where(id: modal['modal_id']).take.template
问题是,如果查询没有找到任何id:modal['modal_id'],那么我可能会运行,然后得到错误
undefined method `template' for nil:NilClass
我怎样才能写一些“take”的东西,但前提是where(id:modal_id)返回一些东西(=找到了)?使用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
或
使用Ruby>=2.3,您可以使用安全导航操作符:
template = ModalType.where(id: modal['modal_id']).take&.template
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
或
使用Ruby>=2.3,您可以使用安全导航操作符:
template = ModalType.where(id: modal['modal_id']).take&.template
谢谢,我应该提到我使用的是ruby 2.3:)我不知道这个“安全导航”,它非常有用这是一种新的说法
。试试(:template)
我不知道。谢谢@Ursus@AndreyDeineko谢谢,好建议=>我检查了谢谢,我应该提到我使用的是ruby 2.3:)不知道这个“安全导航”,它非常有用这是一种新的说法。试试(:template)
我不知道。谢谢@Ursus@AndreyDeineko谢谢,好建议=>我检查了侧注:这似乎更具声明性:ModalType.find_by(id:modal['modal_id'])
侧注:这似乎更具声明性:ModalType.find_by(id:modal['modal_id'])