繁体   English   中英

activerecord:检查列的前X个字符

[英]activerecord: check first X chars of column

我想直接检查模型中数字的前两个字符。 首先,我定义当前登录用户(设备)的数量:

user_number = current_user.number.first(2)

然后我想获取该值并在“数字” mobel的where语句中检查它,因此我尝试了

@numbers = Number.where(:number_value.first(2) => user_number)

这显然与

@numbers = Number.where(:number_value.first(2) => current_user.number.first(2))

不,那是行不通的。

如何检查模型中:number_value列的前两个字符? 任何帮助表示赞赏。

非常感谢。

解决方案(SQLite)

@numbers = Number.where("number_value like '" + current_user.number.first(2) + "%'")

由于这不是延迟加载,因此我还不确定它是最聪明的解决方案。 如果您知道更好,可以共享

首先,您应该阅读ActiveRecord查询指南 我也可以想象,有一种更直接的方法可以帮助您实现目标。

但是,要回答您的特定问题,以下是适用于Postgresql的方法。

Number.where("number_value::text like ?", current_user.number.to_s[0,2] + "%")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM