-1

我有两个数组函数:

def available_billing_address_types
  options = []
  options << "Home" if address.present?
  options << "Organisation" if organisation.present?
  return options         
end

def available_billing_address_types
  options = ["Home", "Organisation"]
  options.delete_at(0) if address.blank?
  options.delete_at(1) if organisation.blank?
  return options         
end 

第一个按预期工作,第二个没有。

我怀疑不可能调delete_at()两次?

或者我在这里错过了什么?

谢谢你的帮助...

4

1 回答 1

3

你有这个数组:

options = ["Home", "Organisation"]

如果你现在打电话给options.delete_at(0)你,你有这个数组:

options = ["Organisation"]

因此,如果您现在调用options.delete_at(1),则没有1要删除的元素。

你可以这样做:

def available_billing_address_types
  options = ["Home", "Organisation"]
  options.delete("Home") if address.blank?
  options.delete("Organisation") if organisation.blank?
  return options         
end 
于 2012-11-10T23:44:10.893 回答