La aplicación My Rails está empezando a necesitar consultas complicadas. ¿Debo comenzar a usar consultas SQL sin formato? ¿Cuál es la tendencia en la comunidad de Rails?Las consultas de My Rails se están empezando a complicar, ¿debería cambiar a consultas SQL sin formato? ¿Qué haces?
Actualización: consultas
mi no me ha escrito en este momento, yo quería hacer esta pregunta antes de empezar. Pero aquí hay un ejemplo de lo que quiero hacer:
Tengo libros que tienen categorías. Quiero decir-
Give me all books that were:
-created_at (added to store) between date1 and date2
-updated_at before date3
-joined with books that exist in shopping carts right now
no he escrito la consulta todavía, pero creo que la versión de los carriles será algo como esto:
books_to_consider = Book.find(:all,
:conditions => "created_at <= '#{date2}' AND created_at >= '#{date1}' AND updated_at <= '#{date3}'",
:joins => "as b inner join carts as c on c.book_id = b.id")
No estoy diciendo ActiveRecord no puede manejar esta consulta , pero ¿es más aceptado ir con SQL sin procesar para la legibilidad (o tal vez hay otras limitaciones que aún no conozco)?
Podría dar un ejemplo concreto? –
¿Puedes dar algunos ejemplos de tus consultas que crees que son demasiado complicadas para usar las funciones de Rails/ActiveRecord? – cpjolicoeur
Tenga en cuenta que ese tipo de interpolación es una muy mala idea. ¿Qué sucede si date1, date2 o date3 contienen un carácter "'"? Estás en un lenguaje dinámico; esos podrían ser cuerdas. –