【问题标题】:Ruby on rails helper: display mdash if nilRuby on rails 助手:如果 nil 则显示 mdash
【发布时间】:2013-01-08 02:30:58
【问题描述】:

对不起我的英语。

我在太多地方,显示相关对象的值:

= post.category.name

而且这个类别可能是空的(在 Ruby 中是空的)。在 Django 中有default 过滤器,它的工作代价是任何未知变量都变为 None (nil),我们可以设置默认值。

在Rails中,这种情况下会出现异常NoMethodError,因为我们试图访问不存在的类别名称的含义。

我想写一个助手来捕获异常并返回—,但post.category.name的值是在传递给助手之前计算出来的(原则上是合乎逻辑的)。

一般来说,我想在这里制作如下代码:

= post.category.nil? ? raw ('-'): post.category.name

以更方便的形式,像这样

= mdash(post.category.name)

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby erb


    【解决方案1】:

    用这个代替三元运算符怎么样?

    post.category.try(:name) || raw('-')
    

    Object#try

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 1970-01-01
      • 2015-03-03
      • 2011-10-05
      • 2017-06-09
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2018-10-08
      相关资源
      最近更新 更多