Pregunta

Tengo una aplicación en la que quiero migrar de metawhere a squeel en preparación para una actualización a Rails 3.1.

Este ha sido principalmente un proceso simple, pero tengo un caso que me causa un poco de problemas. El problema es que tengo tanto el campo como el valor especificado como variables. En mis consultas de Metawhere, simplemente podría crear símbolos fuera de los nombres de campo y luego usarlo en la consulta, pero squeel no usa símbolos, sino que depende de instance_eval y no puedo entender cómo crear una consulta similar usando eso ...

Una ilustración de la consulta original podría ser:

Article.where("#{field_name}".to_sym.matches => '%' + field_value + '%')

¿Cómo creo una consulta similar en squeel?

Sé que puedo especificar que quiero usar la funcionalidad del símbolo heredado, pero prefiero convertir completamente a la nueva sintaxis.

¿Fue útil?

Solución

Esto funciona:

Article.where{article.send(field_name) =~ '%' + field_value + '%'}

El 'artículo' en minúscula es el nombre de la tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top