Qualcuno conosce la query migliore per trovare i record creati questo mese in Rails 3.1?Come trovare i record creati questo mese in Rails 3.1?
risposta
class Model
scope :this_month, -> { where(created_at: Time.now.beginning_of_month..Time.now.end_of_month) }
end
si può chiamare in questo modo:
Model.this_month
ordinato e pulito, +1 – apneadiving
fa questo workin SQLite? stavo cercando di eseguire questo in sqlite e genera ActiveRecord :: Istruzione non valida: SQLite3 :: SQLException: vicino a "<": errore di sintassi: SELECT "orders". * FROM "orders" WHERE (created_at> '2011-11- 01 04: 00: 00.000000 'AND <' 2011-12-01 04: 59: 59.999999 ') \t da /Users/mrchess/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4 /lib/sqlite3/database.rb:91:in 'initialize ' – kidcapital
Hmm, prova' BETWEEN': '" created_at TRA? AND? "' –
Dipende se la vostra ricerca per tutti i record di tutti i modelli o su un modello specifico ecc ...
Per un singolo modello poteva fare:
User.where('created_at >= ? and created_at <= ?', Time.now.beginning_of_month, Time.now.end_of_month)
preferisco SQL-less:
Model.where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month)
o come un campo di applicazione:
class Model < ActiveRecord::Base
scope :this_month, -> { where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month) }
end
Le risposte che forniscono scope
esempi sono sbagliate. Rails utilizza la valutazione appassionata sugli ambiti e pertanto Time.now.beginning_of_month
sarà sempre l'inizio del mese in cui l'ambito è stato inizialmente valutato. Il modo corretto di utilizzare le date in un ambito è passare un lambda allo scope
.
class Model < ActiveRecord::Base
scope :this_month, -> { where(created_at: Time.now.beginning_of_month..Time.now.end_of_month) }
end
In Rails 4 ambiti devono utilizzare un oggetto richiamabile come Lambda
o Proc
- 1. Come trovare un record creato nel mese precedente?
- 2. Query SELEZIONA efficiente per trovare i record entro un mese
- 3. selezionare tutti i record creati nell'ora
- 4. Rails 3.1 - trovare usando conteggio e seleziono come
- 5. Come trovare i record che mancano i record associati in has_many attraverso l'associazione con Active Record?
- 6. Ottieni solo record creati oggi in laravel
- 7. Come far funzionare i caratteri in Rails 3.1?
- 8. Trovare il nuovo record di Rails 3
- 9. rails 3.1 generazione file CSV
- 10. Rails 3.1 - Sviluppo con i modelli montabili
- 11. Capistrano per Rails 3.1
- 12. Come usare Less in un'applicazione rails 3.1?
- 13. Rails 3.1 Percorsi API
- 14. Rails 3: Come riassumere record
- 15. Cambia formato di created_at in Rails 3.1?
- 16. Rails 3.1 Ransack HABTM
- 17. Rails 3.1 Mongo has_secure_password
- 18. Mysql: conta i record (incluso lo zero) al mese
- 19. Conteggio record creati negli ultimi 7 giorni
- 20. Come posso trovare l'attributo max tra i record in ruby?
- 21. Rails: come trovo() tutti i record univoci in determinati campi?
- 22. Come creare popup in hoverover in Rails 3.1
- 23. Come passare da un mese all'altro in Ruby on Rails
- 24. Record di gruppo sia per mese che per anno in Rails
- 25. TSQL recupera tutti i record nel mese/anno corrente
- 26. CTE ricorsiva per trovare i record padre
- 27. Rails 3.1 Caricamento css in particolare dell'ordine
- 28. Come trovare il record corrispondente in mongodb?
- 29. Come filtrare i record dalla data in MySQL?
- 30. Come trovare la settimana del mese
Si dovrebbe aggiungere ulteriori dettagli ... come la definizione del modello – lucapette