gpt4 book ai didi

ruby-on-rails - Rails if 语句导致非法八进制数字错误?

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:06 25 4
gpt4 key购买 nike

在我看来,我有以下 if 语句:

<% if @kase.jobno[1,2].to_i == 10 then %>
<img src="../images/2010.jpg" alt="2010">
<% elsif @kase.jobno[1,2].to_i == 11 then %>
<img src="../images/2011.jpg" alt="2011">
<% else %>
<img src="../images/document.jpg" alt="Document" />
<% end %>

它绝对完美地工作,但是,如果我想扩展语句的范围以显示特定图像,如果 @kase.jobno 字段包含数字 08 并将语句更改为以下内容:

<% if @kase.jobno[1,2].to_i == 09 then %>
<img src="../images/20109.jpg" alt="2009">
<% elsif @kase.jobno[1,2].to_i == 10 then %>
<img src="../images/2010.jpg" alt="2010">
<% elsif @kase.jobno[1,2].to_i == 11 then %>
<img src="../images/2011.jpg" alt="2011">
<% else %>
<img src="../images/document.jpg" alt="Document" />
<% end %>

然后我得到以下错误:

Illegal octal digit

它指向 09 值。

是否不可能有一个 if 语句来与 0X(数字以零开头,后面跟着其他数字)数字进行比较?

谢谢,

丹尼

最佳答案

以 0 开头的数字告诉 Ruby 它是一个八进制数。 09 是一个非法的八进制数,因为这些数字是从 0 到 7(而不是 9)。所以在 07 之后是 010,即十进制的 8,接着是 011,即十进制的 9。

如果您想检查年份是否为 2009 年,您可以使用此检查:

<% if @kase.jobno[1,2].to_i == 9 then %>
<img src="../images/2009.jpg" alt="2009">
<% end %>

(所以只要去掉09前面的0)

关于ruby-on-rails - Rails if 语句导致非法八进制数字错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com