gpt4 book ai didi

ruby-on-rails - 使用sqlite的Ruby on Rails,试图查询并返回最近7天的结果吗?

转载 作者:行者123 更新时间:2023-12-03 19:36:45 29 4
gpt4 key购买 nike

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com