Tôi nghĩ vấn đề của bạn là bạn đang thực hiện created_at = ?, time_range
và time_range không phải là giá trị cụ thể và a = mong đợi một giá trị cụ thể. Không thể giải thích chính xác lý do cho lỗi đó, nhưng có thể giúp bạn giải quyết.
Làm điều này thay vào đó, tôi đã thử nó và hoạt động tuyệt vời
1.9.3-p125 :014 > time_range = (1.month.ago.beginning_of_month..1.month.ago.end_of_month)
=> Sun, 01 Apr 2012 00:00:00 UTC +00:00..Mon, 30 Apr 2012 23:59:59 UTC +00:00
1.9.3-p125 :015 > Post.where(:created_at => time_range).where('id not in (?)', [1,2,3]).count
(0.3ms) SELECT COUNT(*) FROM "posts" WHERE ("posts"."created_at" BETWEEN '2012-04-01 00:00:00.000000' AND '2012-04-30 23:59:59.999999') AND (id not in (1,2,3))
=> 0
CẬP NHẬT
Không liên quan trực tiếp đến câu hỏi, nhưng bạn nên đặt những điều kiện trong phạm vi có ý nghĩa ngữ nghĩa nên bạn sẽ có Feed.from_last_month
và một cái gì đó như Feed.not_with_ids([1,2,3])
Và cho hàng đợi của bạn ry bạn sẽ làm gì
Feed.from_month.not_with_ids([1,2,3]).count
Đối với lời giải thích về cảnh báo kiểm tra những nhận xét dưới đây @echristopherson
Nguồn
2012-05-18 18:59:13
Phiên bản Ruby và Rails nào? – echristopherson