ERB没有获得本地哈希的某些值

时间:2012-03-10 17:11:18

标签: ruby sinatra erb

我正在使用Sinatra并使用ERB渲染视图。 我有以下行动

get '/user/:id' do
  u = @users.retrieve( params[:id] )
  u[:mykey] = [1,2,3]
  erb( :user, :locals => { :user => u } )
end

,视图看起来像这样

<body>
    <h1><%= user["name"] %></h1>

    <pre><%= user["mykey"].to_json %></pre>

并且我希望得到[1,2,3]数组,我得到一个大胖null。 原始值(如名称)可以顺利通过。

1 个答案:

答案 0 :(得分:3)

是Hash还是HashWithIndifferentAccess?

您正在设置user[:mykey]并检索user["mykey"]。使用符号或字符串,除非使用HashWithIndifferentAccess,否则不要混用它们。