消除视图中的重复

时间:2011-10-28 19:13:01

标签: ruby-on-rails refactoring

在下面的视图代码示例中,我可以避免两次使用@thing吗?我需要检查nil,但视图变得非常混乱。

if @thing
  @thing
end

@thing unless @thing.nil?

2 个答案:

答案 0 :(得分:1)

如果你只是想输出@thing或什么都不是nil,你应该能够做到:

<%= @thing %>

如果@thing是nil,Ruby将调用Nil.to_s,返回""(即不会输出任何内容)。否则,它会调用@thing.to_s

答案 1 :(得分:0)

您可以尝试使用像[andand] [1。

这样的宝石

观看对Alex的回复的评论,你可能会得到类似的结论:

isbn.pubdate.andand.strftime("%d %B '%y")

这将返回nil或正确格式化的字符串,具体取决于pubdate是什么。