Это было довольно сложно (довольно плохо знакомо с Ruby / Rails), но я нашел решение. Поместите его в какой-нибудь вспомогательный файл (или в другое место в зависимости от ваших потребностей).
module ActionView::Helpers::FormHelper
def form_for_with_updated_code(record_or_name_or_array, *args, &proc)
form_for_without_updated_code(record_or_name_or_array, *args) { |f|
concat(hidden_field_tag('extra','info'))
proc.call(f)
}
end
alias_method_chain :form_for, :updated_code
end
Переопределяет метод form_for и добавляет ваше скрытое поле. Вы можете добавить код в дополнительные личные параметры, например, чтобы заполнить скрытые поля, из параметра *args
, используя extract_options!
.