У меня есть следующее.
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 (не хочу указывать имя объекта).
Я посмотрю, смогу ли я написать приличное простое расширение формы для этого