gpt4 book ai didi

ruby-on-rails - Rails - 使用 .where 检查对象是否具有以特定字符开头的属性

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:12 25 4
gpt4 key购买 nike

我有一个包含用户的数据库。他们都有邮政编码。

我正在尝试使用 .where 获取所有在 100 天内使用邮政编码以“NR”开头的用户。

我尝试了以下代码,但出现了 postgres 语法错误,可能是因为 .where 似乎接受特定于数据库的语法而不是直接的 ruby​​。

users = User.where('created_at < ? and postcode[0..1] = ?', 100.days.ago, "NR")

我似乎找不到任何可以帮助我上网的东西。我什至尝试创建一个数组并迭代保存匹配的记录,但是 Rails 也无法将用户分配给一个数组,所以我取消了它。

这里有人可以给我任何指导吗?

最佳答案

尝试:

users = User.where { |u| u.postcode.matches "NR%" && u.created_at < 100.days.ago }

不确定那是从哪里来的,所以尝试(虽然更多行):

user_tbl = User.arel_table
u = User.where(user_tbl[:postcode].matches("NR%"))
.where(user_tbl[:created_at].lt(100.days.ago))

关于ruby-on-rails - Rails - 使用 .where 检查对象是否具有以特定字符开头的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671546/

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