Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如果第二个是!=”“红宝石的_Arrays_Ruby_String - Fatal编程技术网

Arrays 如果第二个是!=”“红宝石的

Arrays 如果第二个是!=”“红宝石的,arrays,ruby,string,Arrays,Ruby,String,我有一个包含以下两个元素的数组: if params["location"] params["location"]["street"] =[ params["location"].delete("address1"), params["location"].delete("address2") ].compact.join(", ") l = ::Location.create!(street: params["loca

我有一个包含以下两个元素的数组:

if params["location"]
      params["location"]["street"] =[
          params["location"].delete("address1"),
          params["location"].delete("address2")
      ].compact.join(", ")
      l = ::Location.create!(street: params["location"]["street"],
            city: params["location"]["city"], 
            state: params["location"]["state"],
            zip: params["location"]["postal"], 
            country: params["location"]["country"])
我要做的是将由a表示的两个连接在一起,前提是address2是空字符串/nil

例1:

地址1=西盖街56号

地址2=第211单元

实际地址:西盖街56号211室 预计:西盖街56号211室 例2:

地址1=西盖街56号

地址2=

实际:西盖街56号, 预期:56 West Gay Street

假设a和b是您的两条字符串:

[a,b].select(&:present?).join(", ")
假设a和b是两个字符串:

[a,b].select(&:present?).join(", ")
问题是params['location']['address2']不是空的,而是一个空字符串。可以使用仅选择非空字符串

if params['location']
  street = [
    params['location'].delete('address1'),
    params['location'].delete('address2')
  ].select(&:present?).join(', ')

  l = ::Location.create!(params['location'].merge('street' => street))
end
问题是params['location']['address2']不是空的,而是一个空字符串。可以使用仅选择非空字符串

if params['location']
  street = [
    params['location'].delete('address1'),
    params['location'].delete('address2')
  ].select(&:present?).join(', ')

  l = ::Location.create!(params['location'].merge('street' => street))
end

这给了我真假,我想我需要&:在场,就像下面的答案。谢谢你的帮助,虽然重要的部分完全一样?取决于你如何设置a和b。select将从给定条件为truthy的枚举中选择所有值。所以一个空字符串或nil将被删除。这给了我true,false,我想我需要&:存在,如下面的答案。谢谢你的帮助,虽然重要的部分完全一样?取决于你如何设置a和b。select将从给定条件为truthy的枚举中选择所有值。所以会删除一个空字符串或nil。这在Rails上是可行的,但是如果问题是关于ruby的,那么我们必须定义一个present?方法,或者将其与或进行比较,这将在Rails上工作,但是如果问题是关于ruby的,那么我们必须定义一个礼物?方法或将其与或nil进行比较