Noob在这里,我正在尝试查询我的SQLite数据库以获取最近7天内所做的输入,然后返回它们。
这是当前尝试
user.rb
def featuredfeed
@x = []
@s = []
Recipe.all.each do |y|
@x << "SELECT id FROM recipes WHERE id = #{y.id} AND created_at > datetime('now','-7 days')"
end
Recipe.all.each do |d|
@t = "SELECT id FROM recipes where id = #{d.id}"
@x.each do |p|
if @t = p
@s << d
end
end
end
@s
end
该代码返回每个配方6次(DB中对象总数)的次数,而不管它有多旧。
@x只能是3个ID
@x = [13,15,16]
如果我跑
SELECT id FROM recipes WHERE id = 13 AND created_at > datetime('now','-7 days')
1返回ID为13的行
但是如果查找的ID超过7天,例如12
SELECT id FROM recipes WHERE id = 12 AND created_at > datetime('now','-7 days')
返回0行
我可能使这个复杂化了,但是在这一点上我花了太长时间。
返回类型必须为Recipe。
最佳答案
要返回最近7天内创建的对象,只需使用where子句:
Recipe.where('created_at >= ?', 1.week.ago)
Check out docs有关查询数据库的更多信息。
根据评论编辑:
由于您使用的是acts_as_votable gem,因此请添加投票缓存,以便按投票分数进行过滤非常简单:
Recipe.where('cached_votes_total >= ?', 10)
关于ruby-on-rails - 使用sqlite的Ruby on Rails,试图查询并返回最近7天的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34119737/