即使current_user不存在,我也使用此代码在视图中设置值。如果你知道一个更好的方法建议一个替代bc许多方法,我使用提出异常否则。
def setval_if(valgood, valbad=nil)
begin
return valgood if yield
rescue
else
end
end
setval_if("no exception raised") { true }
# => "no exception raised" # my machine, correct.
# => nil # Heroku
但如果我添加这个肮脏的黑客它也适用于heroku
def setval_if(valgood, valbad=nil)
begin
return valgood if yield
puts "suca vaff.."
rescue
else
end
end
setval_if("no exception raised") { true }
# => "no exception raised" # my machine, correct.
# => "no exception raised" # Heroku
为什么为什么???? :d
答案 0 :(得分:1)
我认为这是与正在运行的Ruby版本相关的问题。我可以在我的本地机器上使用rvm在ruby-1.9.2-p320下复制同样的问题。
我在Heroku上运行了我的一个应用程序的代码,但没有发生错误;该特定应用程序在ruby-1.9.3-p194上运行
你能确认你在运行哪个Heroku堆栈吗?要执行此操作,只需登录heroku,然后运行以下
heroku stack -a yourappnamehere
我在最新的heroku堆栈下运行测试;雪松。