El objetivo principal: Permitir complementos, gemas para agregar campos de formulario adicionales a formularios predefinidos.Cómo agregar campos de formulario adicionales fuera del bloque de declaración de formulario
Por ejemplo, la aplicación tiene un formulario de acceso legado:
<%= form_for(resource, :as => resource_name, ...) do |f| %>
<%= devise_error_messages! %>
...
<% end %>
departamento de marketing quiere empezar una campaña para los próximos 2 días (por ejemplo: cuando se registra en un código promocional y obtener puntos de bonificación X). Entonces, necesitamos agregar un campo promo code
adicional a TODOS nuestros formularios de registro.
¿Hay alguna manera de agregar un campo adicional al formulario de mis rails-plugin/railtie, y definir un método de devolución de llamada on_submit
(para tomar medidas en mis datos de campo adicionales)?
Beneficios:
- que permite la eliminación de la funcionalidad en 2 días o una semana, simplemente quitándolo de archivo joya
- garantía de que la funcionalidad del sitio central no está roto, simplemente se cae de nuevo a la Funcionalidad original
- garantiza que un desarrollador no ha dejado ningún código en alguna parte de la aplicación principal
- plugin/railtie se ocupa de los datos de guardado/actualización que le pertenecen
Miró el código de ActionView, y parece que no hay una forma integrada de hacerlo. ¿Cuáles son tus pensamientos?
NOTA: Los ganchos form_alter
de Drupal son un gran ejemplo.
¿Cómo almacenaste los datos enviados? – Uzbekjon
Lo guardé creando una tabla user_answers. 'UserAnswer' que tiene' belongs_to: user; belongs_to AdditionalField; 'con los campos de' user_id, additional_field_id, answer_value' – TomDunning
uzbekjon - Agregué el código que utilicé para el proyecto que hice. Siéntase libre de preguntar más si no tiene sentido. – TomDunning