在过去的6个月里,我一直在学习Rails。我觉得这很棒!
但是,我的应用收到的99%的错误都是零错误。我正在尝试显示一个为空的字段,或者有一个外键指向已被删除的记录。
我在很多地方都有这种类型的代码:
<% if location.parent != nil %>
<td><%= location.parent.name %></td>
<% else %>
<td></td>
<% end %>
<% if location.client_id != nil %>
<td><%= location.client.client_name %></td>
<% else %>
<td></td>
<% end %>我真希望Rails在字段为nil时显示为空白!或者,设置一个有错误的闪光灯,但仍然显示页面。取而代之的是页面爆炸。在Heroku上,你会得到“对不起,有些事情出错了……”
有没有更好地处理空白字段的方法?有没有更好的方法来编写上面的代码?有没有我不知道的Rails设置?有没有专门的工具来处理这些类型的错误?
发布于 2013-02-18 11:21:36
不是Rails修复,但您可以使用面向对象设计的NullObject模式来重构您的代码,以不同的方式处理"nil“。该模式基本上意味着您为一个对象创建一个null/nil类,该对象在为nil时进行处理。它有一些缺点:一个额外的类需要维护,当你添加新的方法时,你必须记得编辑空的类,这可能是零。好处是它把条件句移出了视图。
这里有一篇关于这个主题的很好的博客文章:http://robots.thoughtbot.com/post/20907555103/rails-refactoring-example-introduce-null-object
另一个建议是把条件句移出你的视线,移到帮助器中。帮助器是包含视图逻辑的简单模块。我经历过视图的所有逻辑都在视图中,这使得视图代码很快就变得一团糟。
https://stackoverflow.com/questions/14926616
复制相似问题