Tell you model to serialize it as a struct and create a setter to build the struct on create.
# post.rb model
serialize :content, OpenStruct
def content=(v)
self[:content] = OpenStruct.new(v)
end
Then you can add any form elements you want for content.
-#form partial
= f.fields_for :content, @post.content do |ff|
.field
= ff.label :name
= ff.text_field :name
.field
= ff.label :age
= ff.number_field :age
Make sure to all your field through strong_params.