我正在调用一个返回多个结果的存储过程。
在Rails 4中,找到的唯一解决方案是使用标志MULTI_STATEMENTS发起新的Mysql2::Client
。打开与数据库服务器的新连接似乎不对。
options = Rails.application.config_for(:database).merge flags: Mysql2::Client::MULTI_STATEMENTS
client = Mysql2::Client.new options
results = client.query %Q{CALL my_proc('#{params}')}
client.close
results
所以我的问题是:目前是否有更好的解决方案?
答案 0 :(得分:0)
解决方案是使用exec_query
调用存储过程,然后调用clear_active_connections!
,如下所示:
results = ActiveRecord::Base.connection.exec_query %Q{CALL my_proc('#{params}')}
ActiveRecord::Base.clear_active_connections!
results