Domanda

Ho un'applicazione in cui voglio migrare dal Metawhere a Squeel in preparazione per un aggiornamento a Rails 3.1.

Questo è stato per lo più un processo semplice, ma ho un caso che mi causa un po 'di problemi. Il problema è che ho sia il campo che il valore specificato come variabili. Nelle mie query Metawhere potrei semplicemente creare simboli dai nomi dei campi e quindi usarlo nella query ma Squeel non usa i simboli ma si basa invece su Instance_eval e non riesco a capire come creare una query simile usando quella ...

Un'illustrazione della query originale potrebbe essere:

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

Come posso creare una domanda simile in squeel?

So di poter specificare che voglio usare la funzionalità del simbolo legacy, ma preferirei convertire completamente la nuova sintassi.

È stato utile?

Soluzione

Questo funziona:

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

L'articolo minuscolo è il nome della tabella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top