0

我有一些添加到会话数组中的代码,如下所示:

if policy_session[:modalities] #array exists just add new value to it
    policy_session[:modalities] << [params[:modality], policy_session[:mode_list]]
else #the array does't exist yet, so create and add first one. 
    policy_session[:modalities] = [params[:modality], policy_session[:mode_list]]

但这会在我的:modalities数组上产生可怕的格式。它看起来像这样:

>> policy_session[:modalities]
>># [["var_1"], "1",[["var_2"], ["2"]], [["var_3"], ["1"]]]

稍后在我的程序中尝试和迭代是一件非常痛苦的事情。

我尝试了很多不同的东西,但还没有想出比这个更好的东西。

如何创建然后添加到数组中,以便我的输出可读?并且所有格式都相同!

我想要这样的东西:

>>policy_session[:modalities]
>># [["var_1", "1"], ["var_2", "2"], ["var_3", "1"]]
4

1 回答 1

1

像这样的东西...

policy_session[:modalities] ||= [] # set it to an empty array if nil
policy_session[:modalities] << [params[:modality], policy_session[:mode_list]]

编辑:摆脱多余的 [] ......

policy_session[:modalities] ||= [] # set it to an empty array if nil
policy_session[:modalities] << [params[:modality], policy_session[:mode_list]].flatten
于 2012-11-14T17:39:17.280 回答