Serialized Hash field and Simple Form

У меня есть следующее.

class Page < ActiveRecord::Base
  belongs_to :category
  serialize :fields
end

Значение полей будет зависеть от категории. Но как пример;

{"address" => "8 finance street, hong kong",
 "founded" => "1973"}

В этом примере категория определила "адрес"и "основан"как настраиваемые поля.

Я хочу сказать,

= simple_form_for(@page) do |f|
  = f.association :category
  - f.object.category.fields.each do |field|
    = f.input field.name

Но мне нужно сделать что-то волшебное, чтобы справиться с тот факт, что @page.foundedнедействителен

Вместо этого я должен посмотреть на @page.fields["founded"].

Есть предложения?


Обновление:

Я немного приблизился

- if f.object.category
  - f.object.category.fields.each do |field|
    = f.input field.name do
      = text_field_tag "post[fields][#{field.name}]", f.object.fields[file.name]

Теперь нужно сделать этот DRYer (не хочу указывать имя объекта).

Я посмотрю, смогу ли я написать приличное простое расширение формы для этого

11
задан Matthew Rudy 8 March 2012 в 06:48
поделиться