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