В приложении Rails 3.2 у меня есть модель с текстовым столбцом :data
. В модели у меня есть:Как получить сериализованные данные?
class Model
serialize :data, Hash
end
Это правильно хранить данные в формате data:{"attr1"=>"foo", "attr2"=>"bar"....}
.
Если я хочу отобразить это в представлении шоу, я могу сделать <%= @model.data %>
, и весь хэш отображается.
Но что делать, если мне нужно только визуализировать определенный атрибут? Это возможно?
я пробовал несколько подходов, которые, казалось, как они могли бы работать:
<%= @model.data.attr1 %>
- генерирует undefined method 'attr1'
<%- @model.data[:attr1] %>
- ничего не отображается
ли я что-то отсутствует? . Спасибо за любые указатели
doh! в этом есть смысл. благодаря! Можете ли вы порекомендовать любую полезную информацию о HashWithIndifferentAccess? Из моих поисков он не очень хорошо освещен. Является ли он широко распространенным или может быть устаревшим? Мне нравится простота синтаксиса, но я не хочу, чтобы меня оставляли высоко и сухо :) –
Не так много объяснять, так как этот класс имеет 'Hash', поскольку он является родителем и позволяет использовать символы вместо ключей. Но этот класс EXTENSIVELY используется Rails. Еще больше: ActiveSupport добавляет метод 'with_indifferent_access' к' Hash' самому, чтобы вернуть экземпляр HashWithIndifferentAccess'. Попытайтесь поместить '<% = params.class%>' в любое ваше мнение и убедитесь, что я не шучу) – jdoe