2010-05-18 8 views
1

Quand je lance Book.scoped({:conditions => ['books.index LIKE ?','%query%']}) je reçois:Pourquoi Model.scoped génère-t-il un SQL invalide?

ActiveRecord::StatementInvalid: SQLite3::SQLException: near "index": syntax error: SELECT * FROM "books" WHERE (books.index like '%query%') 

Qu'est-ce que je fais mal?

+0

INDEX est un mot-clé dans SQL. En SQL brut, vous doublez: "INDEX"; Je ne sais pas comment vous allez corriger dans Rails en dehors de renommer la colonne. Bonne chance. – bernie

Répondre

2

Le crédit passe au Adam Bernier pour indiquer que index est un mot-clé SQL (voir commentaire sur la question). Je republie la solution ici pour que cette question soit marquée comme répondue.

Alors que

Book.scoped({:conditions => ['`index` LIKE ?','%query%']}) 

œuvres, pour la tranquillité d'esprit, j'ai décidé de renommer la colonne.

Questions connexes