我尝试将两个变量添加到字符串中:
if code.alter_fehler == 'k' && code.alter_o.to_f <= 124
@arr << "Bitte Kodierung überprüfen: Kode gilt überwiegend nur für Patienten in der
Altersgruppe zwischen #{jahrtag(code.alter_u,'')}
und {jahrtag('',code.alter_o)}."
end
如何在应用程序控制器中看到我在字符串中调用两次def jahrtag:
def jahrtag(zahlu,zahlo)
if (zahlu && zahlo) == '0' then return 'O Tagen' end
if zahlu == '1' then return '1 Jahr' end
if zahlu == '8' then return '8' end
if zahlu == '12' then return '12' end
if zahlu == '15' then return '15 Jahren' end
if zahlu == '18' then return '18 Jahre' end
if zahlu == '30' then return '30 Jahren' end
end
但不知何故,而不是获取正确的变量'例如:1 Jahr',我的变量在视图中打印为空白!有人知道我弄错了什么吗?感谢
答案 0 :(得分:4)
und {jahrtag('',code.alter_o)}.
这里缺少#
应为und #{jahrtag('',code.alter_o)}.
答案 1 :(得分:0)
发生的事情是 if 语句都不匹配。当方法的执行进入方法的末尾时,该方法返回最后执行的表达式的值。执行的最后一个表达式是“if”,其中条件是 falsy ; if 没有 else 且错误条件 nil 的结果。
当ruby使用#{...}
语法将表达式插入到字符串中时,表达式上会调用#to_s
。 nil.to_s
的结果是一个空字符串。
要解决此问题,请将此添加为#jahrtag的最后一行:
"#{zahlu} Jahren"
这样,即使没有 if 语句匹配,该函数也将始终返回非空字符串。