2012-08-07 60 views
0

我想要测试对heroku ENV var的平等,无济于事。在轨道上执行的heroku ENV变量操作

实施例:

if a['answer']['question_id'] == ENV['HEROKU_VAR'] 
    # this expression was supposed to be true! 
end 

我已经发送的表达到调试器的每一侧并且它们打印相同的值。

我唯一的推测是ENV var是一个不能对它执行操作的对象。

任何人都知道我可能做错了什么?

+0

用'inspect'打印它们,这可能会揭示一些东西。 – 2012-08-07 20:33:00

回答

1

事实上,即使您将Heroku var声明为int,例如HEROKU_VAR = 12345,当你在应用程序的任何地方调用它时,它似乎会抛出一个字符串,你需要将其转换回整数。 我解决了这个问题如下:

if a['answer']['question_id'] == ENV['HEROKU_VAR'].to_i 
    # this expression was supposed to be true and it IS! 
end 
+2

环境变量会传递到您的执行环境,并且始终是字符串。如果你想从中得到一个整数,使用'''to_i''' – phoet 2012-08-07 20:49:44