gpt4 book ai didi

sql - 将参数传递给 ruby​​ on rails 中的原始 SQL 查询

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:37 25 4
gpt4 key购买 nike

我想使用 rails active record 执行原始 SQL 查询,但我的查询需要一个参数,我找不到将那个参数安全地传递到查询字符串中的正确方法。查询如下

def self.get_branches_by_workspace_name(workspace_name)
branches = ActiveRecord::Base.connection.execute("
select
address,
phone,
email,
services
from branches as b, workspaces as w
where b.workspace_id = w.id and w.name= :workspace_name", workspace_name).to_a
return branches
end

我想传递一个名为“workspace_name”的参数。有什么帮助吗?

最佳答案

在你的模型中添加这个方法

  def self.execute_sql(*sql_array)     
connection.execute(send(:sanitize_sql_array, sql_array))
end

这将使您能够在 AR 模型中清理和执行任意 SQL

然后简单地做这个

ModelName.execute_sql("select address,phone,email,services from branches as b, workspaces as w 
where b.workspace_id = w.id and w.name= ?", workspace_name)

关于sql - 将参数传递给 ruby​​ on rails 中的原始 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639790/

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