gpt4 book ai didi

sql - 与 Rails 中的 find_by_sql 相关的问题

转载 作者:行者123 更新时间:2023-11-29 14:18:35 26 4
gpt4 key购买 nike

我正在使用 Rails 4,我需要在我的事件记录模型中使用 find_by_sql。现在我面临两个严重的问题。第一个是它没有给我一个特定的数据,无论它是否给出 #Employee:0x0000000b2a1718 作为结果。我的模型名称是 Employee,表名称是 employees。我正在使用 pg。

请问有什么解决办法

第二个问题是我如何在 find_by_sql 中使用的 sql 查询中写入任何 rails 变量。例如,我想执行 find_by_sql("select firstname from employee where id=@var"),其中 @var 是一个 ruby​​ 变量。

我需要执行的实际查询是使用 find_by_sql select firstname from employee where comapact_string like %@var%。

最佳答案

进行查询时有一定程度的自定义。最简单的形式是您可以使用内置查找器的地方:

Employee.where(id: @var).pluck(:first name)

这将进行直接匹配,如果找到了,则为您提供 first_name 列值。没有模型是用 pluck 产生的。

如果你想用 LIKE 进行近似匹配,你可以更正式地写出 WHERE 子句:

Employee.where('id LIKE ?', "%{@var}%").pluck(:first_name)

您很少需要使用 find_by_sql 写出整个查询,但如果您这样做,则必须对放入查询中的数据格外小心。强烈建议尽可能使用占位符值,如果您绝对必须绕过它,转义所有内容,无论来源如何。

关于sql - 与 Rails 中的 find_by_sql 相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366753/

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