【问题标题】:Rails ||= for empty stringsRails ||= 用于空字符串
【发布时间】:2020-10-27 03:46:50
【问题描述】:

以下代码不会改变变量:

@my_var = ''
@my_var ||= 'This is a non-empty string'

有什么好的/干净的方法可以覆盖空字符串吗?

【问题讨论】:

  • 这里,@my_var 不为空。所以,你必须这样做:@my_var = 'This is a non-empty string' if @my_var.empty?@my_var = 'This is a non-empty string' unless @my_var.present?
  • 猴子补丁可以帮到你,stackoverflow.com/questions/647370/…
  • 猴子补丁可能会让你伤心。
  • 其他方式您可以将值设置为 nil 而不是 ''(空白字符串) 像 => @my_var = ''.presence @my_var ||= 'This is a non-empty string'
  • 如果@my_var 未定义/未设置,则应避免使用空字符串,而只需使用nil

标签: ruby-on-rails ruby


【解决方案1】:

你可以这样尝试:

@my_var = ''
@my_var = @my_var.presence || 'This is a non-empty string'

谢谢:-)

【讨论】:

    【解决方案2】:

    在这种情况下,我只检查这个字符串的长度:

    @my_var = ''
    @my_var = 'This is a non-empty string' if @my_var.length == 0
    => "This is a non-empty string"
    

    【讨论】:

      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 2016-04-19
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多