ERB не получает некоторые значения локального хэша - PullRequest
0 голосов
/ 10 марта 2012

Я использую Sinatra и рендеринг представлений с помощью ERB.У меня есть следующее действие

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

, и представление выглядит так

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

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

, и где я ожидаю получить массив [1,2,3], ябольшой жирный null.Примитивные значения, такие как имя, передаются без проблем.

1 Ответ

3 голосов
/ 10 марта 2012

Это класс Hash или HashWithIndifferentAccess?

Вы устанавливаете user[:mykey] и получаете user["mykey"].Используйте символ или строку, не смешивайте их, если вы не используете HashWithIndifferentAccess.

...