[英]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.