符号不等于符号
Symbol not equal to Symbol
我有一个符号,我在我的控制器中传递给这样的函数调用:
set(:value, 1)
该函数在辅助函数中,或多或少是这样工作的
def set(where, what)
session[:a][where] = what
end
def get(where)
return session[:a][where]
end
我在另一个应该获取相同值的函数的视图中使用了相同的符号:
get(:value)
通过调试,我发现我最终检查了我的散列 table 中的 2 个值。
我的 get 看起来工作正常,但是当我尝试从我的视图中调用 get 时,我的散列试图找到一个值,但它周围有单引号。我已经尝试了很多东西来查看发生了什么,将值更改为硬编码到函数中并没有帮助,但是,用字符串替换符号是。
看起来你的符号被字符串化了(在会话序列化期间)。为避免这种情况,先将它们字符串化!
def set(where, what)
session[:a][where.to_s] = what
end
def get(where)
return session[:a][where.to_s]
end
我有一个符号,我在我的控制器中传递给这样的函数调用:
set(:value, 1)
该函数在辅助函数中,或多或少是这样工作的
def set(where, what)
session[:a][where] = what
end
def get(where)
return session[:a][where]
end
我在另一个应该获取相同值的函数的视图中使用了相同的符号:
get(:value)
通过调试,我发现我最终检查了我的散列 table 中的 2 个值。 我的 get 看起来工作正常,但是当我尝试从我的视图中调用 get 时,我的散列试图找到一个值,但它周围有单引号。我已经尝试了很多东西来查看发生了什么,将值更改为硬编码到函数中并没有帮助,但是,用字符串替换符号是。
看起来你的符号被字符串化了(在会话序列化期间)。为避免这种情况,先将它们字符串化!
def set(where, what)
session[:a][where.to_s] = what
end
def get(where)
return session[:a][where.to_s]
end