Ruby on rails 字符串中的两个变量
我试图在字符串中添加两个变量:Ruby on rails 字符串中的两个变量,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图在字符串中添加两个变量: 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,'')}
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
但不知何故,我的变量并没有得到正确的变量“例如:1 Jahr”,而是在视图中空白打印出来!有人知道我做错了什么吗?谢谢和{jahrtag('',code.alter_o)}。
这里您缺少了
它应该是und{jahrtag(“”,code.alter_o)}。
und{jahrtag(“”,code.alter_o)}。
这里您缺少
它应该是
und#{jahrtag(“”,code.alter_o)}。
发生的是if语句都不匹配。当方法执行到方法末尾时,该方法返回最后执行的表达式的值。执行的最后一个表达式是“如果”,其中条件为falsy;如果没有其他项且条件为falsy,则结果为零
当ruby使用{…}
语法将表达式插入到字符串中时,表达式被调用为has#to_s
。nil.to_s
的结果是一个空字符串
要解决此问题,请将此添加为#jahrtag的最后一行:
这样,函数将始终返回非空字符串,即使if语句都不匹配。发生的情况是if语句都不匹配。当方法执行到方法末尾时,该方法返回最后执行的表达式的值。执行的最后一个表达式是“如果”,其中条件为falsy;如果没有其他项且条件为falsy,则结果为零 当ruby使用
{…}
语法将表达式插入到字符串中时,表达式被调用为has#to_s
。nil.to_s
的结果是一个空字符串
要解决此问题,请将此添加为#jahrtag的最后一行:
这样,函数将始终返回非空字符串,即使if语句都不匹配。噢,谢谢!我怎么会错过呢!但事实并非如此work@user2724695请更具体一点哦,谢谢!我怎么会错过呢!但事实并非如此work@user2724695请更详细地说明您是否真的使用了
“bite…”
,而不是“bite…”
?我指的是引号。@Bjoernsen单引号有什么帮助?不,如果您键入类似“#{var}”的内容,您将得到字符串#{var}
,而不是值。这是我的错误,我没有把问题读对。我没有看到视图中打印出空白的,因此这不是错误的报价符号问题。对不起。@Bjoernsen明白了,我误解了你的第一句话:)如果你在def jahrtag
中添加put zahlu
和put zahlo
,会发生什么?这些值正确吗?您还可以添加puts zahlu.class
。它应该是一个字符串。您真的在使用“bite…”
而不是“bite…”
?我指的是引号。@Bjoernsen单引号有什么帮助?不,如果您键入类似“#{var}”的内容,您将得到字符串#{var}
,而不是值。这是我的错误,我没有把问题读对。我没有看到视图中打印出空白的,因此这不是错误的报价符号问题。对不起。@Bjoernsen明白了,我误解了你的第一句话:)如果你在def jahrtag
中添加put zahlu
和put zahlo
,会发生什么?这些值正确吗?您还可以添加puts zahlu.class
。它应该是一个字符串。
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
"#{zahlu} Jahren"