在我的模型类我有一个方法:Rails的模型方法检查,如果场零,如果是的话返回空字符串
def full_address
address_lines = [self.address1,self.address2,self.address3].reject!(&:empty?).join(',')
fulladdress = address_lines + ", " + self.city + ', ' + self.state + ', ' + self.zipcode
return fulladdress
end
这仅仅是一个简单的方法来返回所有地址字段来快速查看。
这将返回undefined method 'empty?' for nil:NilClass
其空。如果所有的地址1,地址2,地址3都是空的,我怎么能改变这个方法?
我想我正在寻找像一个函数:
ReturnBlankIfNilElseValue(self.address1)
类的东西存在吗?
def full_address
address_lines = [self.address1.to_s,self.address2.to_s,self.address3.to_s].reject!(&:empty?).join(',')
fulladdress = address_lines + ", " + self.city + ', ' + self.state + ', ' + self.zipcode
return fulladdress
end
这种变化返回no implicit conversion of nil into String
这是奇怪的,因为在轨控制台我可以输入nil.to_s
,并得到一个空字符串。
我真的不想检查每个字段是否为零,然后添加到数组,我宁愿一个函数,只是返回空字符串,如果它是零。
对不起,nil.to_s不工作其第二行,需要一个以及。它的工作现在将摆脱这一点。
可能重复(HTTP:// stackoverflow.com/questions/247948/is-there-a-better-way-of-checking-nil-or-length-0-一串红宝石) – Elyasin
我不认为是重复的。如果没有检查它是否为零,我想返回空白。 –
你必须检查零,才能返回空白。你还会怎么做? – Elyasin