所以,我正在将rails应用程序迁移到更新版本的gem,ruby版本等,最后我遇到了一个问题:
我有一个哈希@values,我从我的控制器中拉出来,每当我尝试这样做时,我得到
undefined method [] for nil:NilClass
但是当我扔进记录器以通过@ values.inspect获取值时,我可以清楚地看到键和值。我确信它一定是非常明显的我遗失的东西,我发现另一个用户遇到了这个问题并解决了它,但我似乎无法使其发挥作用。完整的代码是
if @values[:true_value]
# do some stuff
end
我得到nil的未定义方法[]:if行上的NilClass错误。
感谢您抽出宝贵时间帮助我
编辑:
我有一个方法: def GH { :true_value =>真 } 端
因此,当在控制器中使用它时,我将@values加载为:
@values = GH
答案 0 :(得分:0)
你不能拥有以大写字母开头的方法;这些是为常数保留的。
将您的方法重写为:
def gh
{ :true_value => true }
end
在3行(不是你问题中的一行)和
@values = gh
答案 1 :(得分:0)
尝试present ..就像我们通常检查params
if @values[:true_value].present?
# do some stuff
end
答案 2 :(得分:0)
方法名称必须小,而不是 GH 它应该是 gh
def gh; {:true_value => true};端
@values = gh
@values [:true_value] =>真
我希望它能解决你的问题。