2011-12-04 24 views
5

Voglio fare una ricerca in Rails fondamentalmente per verificare se un oggetto esiste già nel database. Ho un CSV, che ho poco controllo sul formato di esso. Ho un campo nel CSV chiamato 'nome', che è l'esempio che ho contiene 5 parole. Questo campo contiene un nome e un indirizzo, ma non è limitato a nessun formato.Rails trova da parte della stringa

Nella mia banca dati ho campi come "nome", "indirizzo 1", "indirizzo 2". Fondamentalmente voglio vedere se qualsiasi parte del campo del nome nel CSV corrisponde a qualsiasi campo nel mio database.

So che probabilmente devo eseguire un comando simile a SQL, ma non sono sicuro di come procedere.

risposta

24

È possibile farlo utilizzando LIKE:

User.where('name LIKE ?', "%#{@user.name}%") 

La sintassi per un'istruzione LIKE SQL per trovare un campo per un determinato frammento di stringa è quello di circondare il vostro frammento di stringa con % caratteri, quindi la risultante di SQL guarderà qualcosa di simile

"SELECT \"users\".* FROM \"users\" WHERE (name LIKE '%Rob Phillips%')" 
Problemi correlati