2015-08-06 5 views
0

Я изучаю динамические формы для своего приложения, и в настоящее время я хотел бы построить вложенный хеш и в настоящее время следующий Railscasts' ep 403. Таким образом, следующие моя модель и форма:Как создать вложенный хэш через динамические формы

Модель:

class Product < ActiveRecord::Base 
    belongs_to :product_type 
    serialize :properties, Hash 
end 

Форма:

<%= f.hidden_field :product_type_id %> 

<%= f.fields_for :properties, OpenStruct.new(@product.properties) do |builder| %> 
    <% @product.product_type.fields.each do |field| %> 
    <%= render "products/fields/#{field.field_type}", field: field, f: builder %> 
    <% end %> 
<% end %> 

Выход я получаю: вид структуры

"properties"=>{"Name"=>"Great Prod", "Remarks"=>"Super!", "Year"=>"2015"} 

данных:

- properties 
-- Name: "Great Prod" 
-- Remarks: "Super!" 
-- Year: "2015" 

Что я ищу это: взгляд структуры

"properties"=>{"2015"=>{"Name"=>"Great Prod", "Remarks"=>"Super!"}} 

данных:

- properties 
-- "2015" 
    --- Name: "Great Prod" 
    --- Remarks: "Super!" 

Как я могу идти о выше, чтобы достичь этого? Спасибо!

Редактировать 1: Исправлено ожидаемое значение хэша для вышеуказанного и добавлено простое представление структуры данных.

+1

Ваш ожидаемый хэш выглядит неправильно для меня. – Pavan

+0

Спасибо @Pavan за выделение, я исправил его. –

+0

Кто-нибудь может помочь в этом? –

ответ

0

Таким образом, вместо использования хеша в год я фактически создал новую модель года и оттуда, сохранил все свойства как хэш.