L'app My Rails sta iniziando a richiedere query complicate. Dovrei semplicemente iniziare a utilizzare query SQL raw? Qual è la tendenza nella community di Rails?Le query di My Rails iniziano a complicarsi, dovrei passare alle query SQL raw? cosa fai?
Aggiornamento: query
io non ho scritto in questo momento, ho voluto porre questa domanda prima di iniziare. Ma ecco un esempio di ciò che voglio fare:
Ho libri che hanno categorie. Voglio dire-
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
non ho ancora scritto la query, ma penso che la versione rotaie sarà qualcosa di simile:
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")
Non sto dicendo ActiveRecord non può gestire questa query , ma è più accettabile andare con raw SQL per la leggibilità (o forse ci sono altre limitazioni che non conosco ancora)?
Potrebbe dare un esempio concreto? –
puoi fornire alcuni esempi delle tue domande che ritieni siano troppo complicate per l'utilizzo delle funzionalità di Rails/ActiveRecord? – cpjolicoeur
Si prega di notare che quel tipo di interpolazione è una pessima idea. Cosa succede se date1, date2 o date3 contengono un carattere ""? Sei in un linguaggio dinamico; quelli potrebbero essere stringhe. –