У меня есть следующее.
class Page < ActiveRecord::Base
belongs_to :category
serialize :fields
end
Значение fields
будет зависеть от категории. Но в качестве примера:
{"address" => "8 finance street, hong kong",
"founded" => "1973"}
В этом примере категория определила "address"
и "founded"
как пользовательские поля.
Я хочу сказать:
= 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"]
.
Любые предложения?
Update:
У меня немного ближе
- 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 (не хотите указывать имя объекта).
Я посмотрю, могу ли я написать для этого простое расширение простой формы.