を使用してActiveAttr
:
class Filter
include ActiveAttr::Model
attribute term
# Overriding to_key, to_param, model_name, param_key etc doesn't help :(
end
class SpecialFilter < Filter
end
ActiveModelをオーバーライドして、すべてのサブクラスに対して(同じ)事前定義された入力名を生成するにはどうすればよいですか?
= form_for SpecialFilter.new, url: 'xx' do |f|
= f.text_field :term
だから私は代わりに<input name='special_filter[term]' />
取得する必要があります<input name='filter[term]' />
注:シナリオははるかに複雑であるため(simple_formおよびradios / checkboxes / dropdownsなど)、クラスの名前や同様の回避策を変更することを提案しないでください。フォームビルダーで使用するには、一貫した名前を付ける必要があります。