Bất cứ ai biết truy vấn tốt nhất để tìm các bản ghi được tạo ra trong tháng này trong Rails 3.1?Cách tìm các bản ghi được tạo trong tháng này trong Rails 3.1?
Trả lời
class Model
scope :this_month, -> { where(created_at: Time.now.beginning_of_month..Time.now.end_of_month) }
end
bạn có thể gọi nó như thế này:
Model.this_month
gọn gàng và sạch sẽ, 1 – apneadiving
không workin sqlite này? tôi đã cố gắng để chạy điều này trong sqlite và nó ném ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: near "<": cú pháp lỗi: SELECT "orders". * FROM "orders" WHERE (created_at> '2011-11- 01 04: 00: 00.000000 'VÀ <' 2011-12-01 04: 59: 59.999999 ') \t từ /Users/mrchess/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4 /lib/sqlite3/database.rb:91:in 'initialize ' – kidcapital
Hmm, thử' GIỮA': '" created_at GIỮA? AND? "' –
Phụ thuộc vào nếu bạn đang tìm kiếm tất cả hồ sơ của tất cả các mô hình hoặc trên một mô hình cụ thể vv ...
Đối với một mô hình duy nhất bạn có thể làm:
User.where('created_at >= ? and created_at <= ?', Time.now.beginning_of_month, Time.now.end_of_month)
tôi thích SQL-less:
01.Model.where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month)
hoặc là một phạm vi:
class Model < ActiveRecord::Base
scope :this_month, -> { where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month) }
end
Những câu trả lời cung cấp scope
ví dụ là sai. Đường ray sử dụng đánh giá mong muốn trên phạm vi và do đó, Time.now.beginning_of_month
sẽ luôn là đầu của tháng khi phạm vi được đánh giá ban đầu. Cách chính xác để sử dụng ngày trong phạm vi là chuyển một lambda đến scope
.
class Model < ActiveRecord::Base
scope :this_month, -> { where(created_at: Time.now.beginning_of_month..Time.now.end_of_month) }
end
Trong Rails 4 phạm vi phải sử dụng một đối tượng có thể được gọi như Lambda
hay Proc
- 1. Bản ghi nhóm theo cả tháng và năm trong Rails
- 2. Mongodb, mongoid Rails 3.1. * Lỗi với bản ghi Hoạt động
- 3. Bản đồ RestKit với Rails 3.1
- 4. Sao chép bản ghi trong Rails 3
- 5. Rails 3.1 - tìm cách sử dụng đếm và chọn như
- 6. Rails ActiveRecord - cách tìm nạp bản ghi giữa hai ngày
- 7. Tìm các bản ghi có hai bản ghi cụ thể trong một bảng khác
- 8. chọn tất cả các bản ghi được tạo trong giờ
- 9. Rails 3.1 Các tuyến API
- 10. Cách hiển thị hình ảnh trong Javascript với Rails 3.1
- 11. Tạo ngày giờ trong Rails bằng tháng, ngày và năm
- 12. Cách tạo cửa sổ bật lên di chuột qua trong Rails 3.1
- 13. Thay đổi định dạng của created_at trong Rails 3.1?
- 14. Tìm các tháng Thiếu
- 15. Rails 3.1: không thể ghi vào cột trong cùng một di chuyển thêm nó
- 16. Làm cách nào để tạo Rails 3.1 kết hợp nội dung trong chế độ phát triển?
- 17. Tìm ngày tháng trong chuỗi
- 18. Rails 3.1 include_root_in_json
- 19. mysql chọn các bản ghi lớn hơn 3 tháng
- 20. Rails 3.1 ckeditor
- 21. Thay đổi updated_at trong một bản ghi Rails
- 22. Capistrano cho Rails 3.1
- 23. Rails Authlogic 3.1
- 24. Sprites in Rails 3.1
- 25. Backbone.js + Rails 3.1: Cách tạo CMS trong không gian tên Admin?
- 26. Ruby on Rails Bản ghi Intellipection Bản ghi Hoạt động
- 27. Cung cấp các phiên bản nội dung chưa được biên soạn trong đường ray 3.1+
- 28. Không thể sử dụng UJS trong Rails 3.1
- 29. Cách tìm bản ghi mới nhất trong cakephp?
- 30. Cách tìm số hàng của bản ghi?
Bạn nên bổ sung thêm chi tiết ... như định nghĩa mô hình – lucapette