除非是块,否则Ruby返回

我从github webhook中得到了一个字段——。webhook.repository.private – 检查创建的版本库是否是私有的(boolean)。我想使用 return if 块处理方案:检查是否 webhook.repository.private 是真的,如果不是,则调用新的类 PublicRepositoryCreated 但如果这是真的 – 返回并执行 fields_hash

下面的代码。

      def required_fields
        PublicRepositoryCreated.new(webhook).call unless webhook.repository.private

        fields_hash
      end

      private

      def fields_hash
        {
          'fields' => {
            'summary' => 'summary',
            'description' => 'description',
            'project' => '123'
          }
        }
      end

现在看来 fields_hash 即使在 webhook.repository.privatefalse

解决方案:

你有多种方法来解决你的问题。

你可以选择:

  1. 调用你的函数并返回
def required_fields
  PublicRepositoryCreated.new(webhook).call && return unless webhook.repository.private

  fields_hash
end
  1. 返回你的函数
def required_fields
  return PublicRepositoryCreated.new(webhook).call unless webhook.repository.private

  fields_hash
end
  1. 连用
def required_fields
  webhook.repository.private ? fields_hash : PublicRepositoryCreated.new(webhook).call
end

给TA打赏
共{{data.count}}人
人已打赏
未分类

当编译器在构建时抛出一个错误 "expected initializer before int",我一直在努力学习C++,但我一直被卡住[关闭] 。

2022-9-9 3:18:19

未分类

让Bootstrap卡片在各个角度都相对较小

2022-9-9 3:18:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索