我在加载值时使用这段Ruby代码。
request_builder = "#{gateway.camelize}RequestBuilder".constantize
但yml配置文件中不时缺少值网关。如何添加支票是否存在此值?例如,如果值gateway
为空,我想打印一些消息并停止代码执行。
答案 0 :(得分:0)
你可以问网关:
unless gateway&.empty?
或使用ActiveSupport(Rails):
if gateway.present?
如果网关不存在,则引发异常:
fail "gateway not present" unless gateway.present?
request_builder = "#{gateway.camelize}RequestBuilder".constantize
(顺便说一句fail
是raise
的别名。有些人更喜欢只在raise
区块内使用rescue
而在fail
区域使用&
,但这只是一个品味问题。)
更新:从&.present?
移除了present?
,因为ActiveSupport在NilClass
上定义了runtime.getCurrentScript.getParameter
。