Ruby on rails RubyonRails助手:如果为nil,则显示mdash

Ruby on rails RubyonRails助手:如果为nil,则显示mdash,ruby-on-rails,ruby,erb,Ruby On Rails,Ruby,Erb,对不起我的英语 我在太多的地方,显示值​​有关对象的名称: = post.category.name 并且这个类别可能为null(Ruby中为nil)。在Django中,有defaultfilter,它可以使任何未知变量变为None(nil),我们可以设置默认值 在Rails中,在这种情况下会出现异常NoMethodError,因为我们试图访问不存在的类别名称的含义 我想编写一个助手来捕获异常并返回&mdash但是post.category.name值是在传递给助手之前计算的(原则上是逻辑的)

对不起我的英语

我在太多的地方,显示值​​有关对象的名称:

= post.category.name
并且这个类别可能为null(Ruby中为nil)。在Django中,有
default
filter,它可以使任何未知变量变为None(nil),我们可以设置默认值

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

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

总的来说,我想在这里给出以下代码:

= post.category.nil? ? raw ('-'): post.category.name
以更方便的形式,像这样

= mdash(post.category.name)

谢谢大家!

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

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