在Rails视图模板中写条件变量的最短方法是什么?

0 ruby performance ruby-on-rails dry conditional-operator

我必须在使用条件运算符的.erb模板中放一些东西。

在下面的代码中,您可以看到我正在检查条件值,如果不为零,则打印相同的值。

<%= (@variable.value.nil?) ? "-" : @variable.value %>
Run Code Online (Sandbox Code Playgroud)

我想应该有一个更短的方法来做到这一点。两次写相同的东西看起来真的很丑。

spi*_*ann 5

当您使用Ruby on Rails时,可以使用仅在self存在时presence返回的helper方法self

<%= @variable.value.presence || "-" %>
Run Code Online (Sandbox Code Playgroud)

与您的版本相比,presence还可以处理@variable.value返回空字符串的情况。