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

时间:2019-05-10 06:11:33

标签: ruby-on-rails ruby performance dry conditional-operator

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

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

<%= (@variable.value.nil?) ? "-" : @variable.value %>

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

3 个答案:

答案 0 :(得分:6)

使用Ruby on Rails时,可以使用presence帮助方法,该方法仅在存在self时返回self

<%= @variable.value.presence || "-" %>

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

答案 1 :(得分:2)

您可以像下面一样简单地使用||运算符。

<%= @variable.value || "-" %>

答案 2 :(得分:1)

尝试(OR)运算符。

<%= @variable.value || "-" %> 

OR

<%= @variable.value || #{any_variable_you_want_to_display_that_surely_contains_value}  %>