gpt4 book ai didi

sql - 在 Ruby on Rails 3 中组合 first_name 和 last_name 列的最佳方法?

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

我的 User 模型中有一个方法:

def self.search(search)
where('last_name LIKE ?', "%#{search}%")
end

但是,如果我的用户能够在同一个查询中同时搜索 first_name 和 last_name,那就太好了。

我想像这样创建一个虚拟属性:

def full_name
[first_name, last_name].join(' ')
end

但这在数据库级别上是否有效?或者有没有更快的方法来检索搜索结果?

感谢您的帮助。

最佳答案

您的示例中的虚拟属性只是类方法,不能被类似查找的 ActiveRecord 方法用于查询数据库。

检索搜索结果的最简单方法是修改Search 方法:

def self.search(search)
q = "%#{query}%"
where("first_name + ' ' + last_name LIKE ? OR last_name + ' ' + first_name LIKE ?", [q, q])
end

其中 varchar 串联语法与您选择的数据库兼容(在我的示例中为 MS SQL)。

关于sql - 在 Ruby on Rails 3 中组合 first_name 和 last_name 列的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439640/

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