Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 字符串中的两个变量_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

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"