我正在做一些活动的记录查询,然后将它们附加到之前创建的数组中。我想要做的是从上个月创建的数组中选择一个。不知道你是怎么做的,因为你再也不能再做一个活动的记录阵列了。
e.g。 (简单示例贝娄**我无法在实际代码中组合查询)
results = []
results += Post.where(:category_id => 1)
results += Post.where(:user_id => 1)
results += Post.where(:user_id => 4)
现在我想摆脱上个月创建的结果数组
答案 0 :(得分:4)
只需使用ruby Enumerable#select
:
results.select { |post| post.created_at >= 1.month.ago }
答案 1 :(得分:1)
与其他答案略有不同的方法
results = []
posts = Post.where('created_at >= ?', Time.now - 1.month)
results << posts.where(category_id: 1)
results << posts.where(user_id: 1)
results << posts.where(user_id: 4)
如果你在数组中有user_id
,你也可以这样做
user_ids = [1,4]
results << posts.where(user_id: user_ids)
答案 2 :(得分:0)
看起来您正在将对象放入数组中,在这种情况下,您仍然可以在这些对象上使用created_at
等属性。 created_at >= 1.month.ago
应该作为查询中的参数。取决于你的链接方式:
Post.where("created_at >= ?", 1.month.ago)
或results_array.select { |post| post.created_at >= 1.month.ago }