ActiveRecord按字符串的最后一个字符选择

时间:2016-06-03 17:53:21

标签: ruby-on-rails postgresql

我试过

members = Member.select(:member_id[6] == "1")

members = Member.select(member_id[6]: == "1")

members = Member.select("member_id[6]" == "1")

我试图只获得其member_id最终字符为1的成员。

1 个答案:

答案 0 :(得分:1)

为了有效地获得你想要的东西,你需要利用Postgres'字符串函数在文字SQL条件下。您现有的代码也混淆了select,这是一种Active Record方法,它改变了查询在其SELECT子句中使用的内容,使用select,Ruby Enumerable方法,它允许您过滤集合。由于您的过滤最好在数据库中执行,因此您希望改为使用where

所以,比如:

Member.where("RIGHT(member_id::varchar, 1) = '1'")