mysql - Rails sql查询中动态传递参数

标签 mysql ruby-on-rails ruby-on-rails-3

下面是一个 SQL 查询,它获取一些与用户相关的数据。

def self.get_user_details(user_id)

      result = Event.execute_sql("select replace(substring_index(properties, 'text', -1),'}','') as p, count(*) as count
                  from ahoy_events e where e.user_id = ?
                  group by p order by count desc limit 5", :user_id)

      return result
 end

我想动态地将值传递给用户 ID 以获得结果。 我正在使用下面的方法来清理 sql 数组,但它仍然没有返回结果。如果给定静态参数,查询可以正常工作。

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

因为查询很复杂,我无法弄清楚 ActiveRecord 的方式来获取结果。 我有什么办法可以解决这个问题吗?

最佳答案

我不知道为什么这不起作用。可能 SQL-Syntac SELECT * FROM users ...

动态传递一些其他方式可以做到这一点:“some string #{user.id#ruby code} some more string”

您可以在 Activerecord 中执行如下查询:User.where(id: user.id).where(field2: value2).group_by(:somevalue).order(:id)

关于mysql - Rails sql查询中动态传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46982556/

相关文章:

ruby-on-rails-3 - 如何从另一个不同于设计的 Controller 调用设计的sign_in和sign_out方法?

ruby-on-rails - Rails3 和 readline 问题

ruby-on-rails - 创建具有 3 层嵌套的哈希的简洁方法,如果层不存在,则创建层

mysql - 如何在所有页面中获取 session 。?代码点火器

ruby-on-rails - 检索在 ActiveRecord/Rails 中没有关系的对象

php - 您的 SQL 语法有误;查看

ruby-on-rails - 从外部 ruby​​ 脚本添加记录

ruby-on-rails - 在 Rails 中构建电子商务网站的提示/建议

php - 通知栏 : Am I going the right way? 的 Node.js 和 socket.io

python - Flask Web 应用程序 : Filter table view by button