He tenido varios problemas con varios sitios en los últimos años con los usuarios poniendo espacios en el inicio/fin de los campos de texto y cadena. A veces, esto causa problemas de formato/formato, a veces causan problemas de búsqueda (es decir, el orden de búsqueda se ve mal, aunque en realidad no es así), a veces bloquean la aplicación.ActiveRecord: haga que todos los campos de texto tengan llamadas antes de guardarlos, a menos que se especifique lo contrario
Pensé que sería útil, en lugar de poner un montón de devoluciones de llamada before_save como lo he hecho en el pasado, agregar algunas funcionalidades a ActiveRecord para llamar automáticamente a .strip en cualquier cadena/campo de texto antes de guardar, a menos que dígale que no lo haga, por ejemplo, con do_not_strip :field_x, :field_y
o algo similar en la parte superior de la definición de la clase.
Antes de ir y descubrir cómo hacer esto, ¿alguien ha visto una solución más agradable? Para ser claro, ya sé que puedo hacer esto:
before_save :strip_text_fields
def strip_text_fields
self.field_x.strip!
self.field_y.strip!
end
pero yo estoy buscando una manera más agradable.
aplausos, máximo
Muchas gracias @Wukerplank, lo he incorporado y parece que hace el trabajo :) Supongo que es mejor desde el punto de vista menos sorprendente enumerar explícitamente los campos de texto que quiero quitar en los modelos, en lugar de que enumerar los que no quiero quitar como originalmente. Por cierto, el enlace de instalación en la página de tu complemento no funciona: creo que solo necesitas reemplazar "https" con "git" al comienzo. También hay una izquierda sobrante, presumiblemente para la depuración? ¡aclamaciones! max –
Sí, también pensé que declarar explícitamente los campos sería un modelo más legible. Y gracias por los consejos, lo limpiaré :) – Wukerplank
¿Dónde agregaste el Stripper? Lo puse en lib/modules y no está cargando –