【问题标题】:Rails merge string to existing one when if true如果为 true,Rails 会将字符串合并到现有字符串
【发布时间】:2021-02-04 17:00:45
【问题描述】:

我正在使用 gem prawn 生成 PDF。我想使用该 gem 创建表,因此我将使用该 gem 中的 make_cell,如下所示:

  make_cell(
    content: "#{cash_transaction[:transaction_date]}
              \n#{cash_transaction[:creation_date]}
              \n#{cash_transaction[:deletion_date]}"
  )

问题是,当deletion_date(cash_transaction) 为 nil 时,它将打印我们 creation_date 和空行(来自 \n#{cash_transaction[:deletion_date]}。如何以比下面更优雅的方式防止这种情况:

  if cash_transaction[:deletion_date]
    make_cell(
      content: "#{cash_transaction[:transaction_date]}
                \n#{cash_transaction[:creation_date]}
                \n#{cash_transaction[:deletion_date]}"
    )
  else
    make_cell(
      content: "#{cash_transaction[:transaction_date]}
                \n#{cash_transaction[:creation_date]}"
    )
  end

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    我建议你将字符串 buld 然后传递给make_cell

    content = "#{cash_transaction[:transaction_date]}
               \n#{cash_transaction[:creation_date]}"
    
    content << "\n#{cash_transaction[:deletion_date]} if cash_transaction[:deletion_date]
    
    make_cell(content: content)
    

    【讨论】:

      【解决方案2】:

      这个怎么样:

      deletion = cash_transaction[:deletion_date]
      deletion = deletion ? "\n#{deletion}" : ''
      
      make_cell(
        content: "#{cash_transaction[:transaction_date]}
                  \n#{cash_transaction[:creation_date]}
                  #{deletion}"
      )
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2022-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2017-10-25
        • 2014-10-04
        • 2019-07-19
        • 2015-04-04
        相关资源
        最近更新 更多