1
7
我个人会用
不管怎样,
|
2
8
戴夫·史密斯走对了。 看看这个: http://www.nach-vorne.de/2007/4/24/attr_accessor-on-steroids 一个简单的解决方案是这样的:
|
3
7
处理这一问题的较少重复的方法是,通过安排金融资产持有适当的sentinel值(例如,空集合或具有退化行为的特殊对象),确保金融资产始终是非空对象。 |
4
3
案例1:
案例2:
|
6
3
解决此类问题的更通用的方法是向对象添加一个try方法:
我相信Ruby1.9已经在对象上有了一个try方法。
然后
|
7
1
Try是一个方法,如果对象的方法非nil,它将调用该对象的方法,否则只返回nil。尝试nil方法将始终返回nil,而不是抛出异常。 http://api.rubyonrails.org/classes/Object.html#method-i-try 这是红宝石的方法! |
8
1
你不需要额外的宝石就可以做到。我一直在用
|
9
0
这是Ruby,您可以向nilclass添加一个length方法,并让它始终返回0。 |
10
0
你可以把它改短一点:
因为
但总的来说,imho有很多重复的方法,只有各种各样的解决方法。(这是我不太喜欢Ruby中的一件事。)你可以确保对象不是空的(正如其他人在这里建议的那样),但你不能到处都这样做。您可以在helper方法或begin rescue块中包装nil检查代码。 例如,我编写了一个助手方法——一个“长度getter”,而不是将长度方法添加到nil对象(这是一个肮脏的hack):
|
11
0
模型中返回0或长度的内容。这使你不必在你看来做一件有价值的事。像这样的事情通常可以在模型中完成。
|
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |