Nasıl bir form içinde Raylar seri bir alanı düzenlemek için?
Seri hale getirilmiş bir alan olduğunu Raylar projemde veri bir model var:
class Widget < ActiveRecord::Base
serialize :options
end
Seçenekler alanı değişken veri bilgi alabilir. Örneğin, burada armatürleri dosyadan: bir kayıt için seçenekler alanı
options:
query_id: 2
axis_y: 'percent'
axis_x: 'text'
units: '%'
css_class: 'occupancy'
dom_hook: '#average-occupancy-by-day'
table_scale: 1
Benim sorum bir kullanıcı standart bir form görünümünde bu Bilgi düzenlemek için doğru yolu nedir?
Eğer sadece seçenekler alanı için basit bir metin alanı bir alanı kullanıyorsa, yaml dökümü temsil alacağı ve bu veri sadece bir dize olarak geri gönderildi.
Raylar bu seri karma bir alanı düzenlemek için en iyi/uygun yol nedir?
CEVAP
Eğer seçenek tuşları önceden olacak ne biliyorsanız, onlar için özel alıcıları ve ayarlayıcıları gibi çok bildirebilirsiniz:
class Widget < ActiveRecord::Base
serialize :options
def self.serialized_attr_accessor(*args)
args.each do |method_name|
eval "
def #{method_name}
(self.options || {})[:#{method_name}]
end
def #{method_name}=(value)
self.options ||= {}
self.options[:#{method_name}] = value
end
attr_accessible :#{method_name}
"
end
end
serialized_attr_accessor :query_id, :axis_y, :axis_x, :units
end
Bu konuda güzel şey seni Raylar gibi: yardımcıları formu kullanmak için izin verir öznitelikleri gibi seçenekler dizinin bileşenleri ortaya koyar
#haml
- form_for @widget do |f|
= f.text_field :axis_y
= f.text_field :axis_x
= f.text_field :unit
Katılmak modeli öznitelikleri düzenlem...
Nasıl bir PostgreSQL '' sorg...
Bir Yardımcı kullanmak için Nasıl rayl...
Nasıl Raylar içinde CSS 4 görüntüleri ...
Nasıl denetleyicisi oluşturmak için ra...