1

我有一个案例,要么variable被定义,要么variable被定义。我需要将逻辑实现到插值中,以在这些定义的变量中选择变量。当我做:nilalternative_variable

some_value: "#{ variable || alternative_variable }"

何时variable定义,一切正常。时刻variable未定义(并且alternative_variable存在),我收到以下错误:

undefined local variable or method `variable' for #<#Class:0x007fc3c021bc28>:0x007fc3c006c030>

通过在插值之前添加以下代码块,我找到了一种绕过错误的方法:

<% variable ||= alternative_variable %>

但它感觉很脏而且不是轨道方式。有没有一种简洁的方法可以将逻辑直接放在插值中?

4

1 回答 1

4

这与rails无关,它只是红宝石。试试这个:

some_value: "#{ defined?(variable) ? variable : alternative_variable }"
于 2012-11-16T09:56:04.170 回答