0

我试图将两个变量添加到字符串中:

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”,而是在视图中打印为空白!有人知道我做错了什么吗?谢谢

4

2 回答 2

4

und {jahrtag('',code.alter_o)}.在这里你错过了#

它应该是und #{jahrtag('',code.alter_o)}.

于 2013-08-28T14:42:08.920 回答
0

发生的事情是没有一个if语句匹配。当方法执行到方法结束时,该方法返回最后执行的表达式的值。最后执行的表达式是条件为falsy的“if” ;if没有else和 falsy 条件的结果是nil

当 ruby​​ 使用语法将表达式插入到字符串中时#{...},该表达式被#to_s调用。的结果nil.to_s是一个空字符串。

要解决此问题,请将其添加为 #jahrtag 的最后一行:

"#{zahlu} Jahren"

这样,该函数将始终返回一个非空字符串,即使没有任何if语句匹配。

于 2014-02-18T22:35:41.310 回答