如何动态设置会话变量的名称?

时间:2011-10-26 06:44:18

标签: ruby-on-rails

我正在尝试完成以下操作,但使用会话变量(即,'session [:dynamic_named]'),而不是实例变量。这就是我看到它可以用实例变量完成的方式:

instance_variable_set("@#{params[:key]}", params[:val])

看到似乎没有“session_variable_set”,即使对会话变量进行一些替代方法,如何做到这一点呢?

2 个答案:

答案 0 :(得分:1)

您可以像使用普通哈希一样在session上设置值,例如:

session[:dynamically_named] = 'some_value'

# or, to match your example code...

session[ params[:key] ] = params[:val]

答案 1 :(得分:0)

session(在Rails控制器中)是一个哈希,所以像哈希一样使用它:

session[:foo] = 'bar'