检查值是否存在

时间:2018-03-12 13:18:35

标签: ruby

我在加载值时使用这段Ruby代码。

request_builder = "#{gateway.camelize}RequestBuilder".constantize

但yml配置文件中不时缺少值网关。如何添加支票是否存在此值?例如,如果值gateway为空,我想打印一些消息并停止代码执行。

1 个答案:

答案 0 :(得分:0)

你可以问网关:

unless gateway&.empty?

或使用ActiveSupport(Rails):

if gateway.present?

如果网关不存在,则引发异常:

fail "gateway not present" unless gateway.present?
request_builder = "#{gateway.camelize}RequestBuilder".constantize

(顺便说一句failraise的别名。有些人更喜欢只在raise区块内使用rescue而在fail区域使用&,但这只是一个品味问题。)

更新:从&.present?移除了present?,因为ActiveSupport在NilClass上定义了runtime.getCurrentScript.getParameter