Sql Rails中的ActiveRecord execute_过程()未返回任何结果

Sql Rails中的ActiveRecord execute_过程()未返回任何结果,sql,ruby-on-rails,sql-server,ruby,Sql,Ruby On Rails,Sql Server,Ruby,我正在尝试在SQLServer数据库中执行一个存储过程。该过程执行它应该执行的操作,但每当我尝试从RubyonRails应用程序运行它时,它都会执行该过程,但我无法获得返回值。我还尝试修改过程以使用输出参数 @success = ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3]) render html: @success 渲染显

我正在尝试在SQLServer数据库中执行一个存储过程。该过程执行它应该执行的操作,但每当我尝试从RubyonRails应用程序运行它时,它都会执行该过程,但我无法获得返回值。我还尝试修改过程以使用输出参数

@success = ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3])
render html: @success

渲染显示一个空数组。如果过程成功,则应为1;如果过程失败,则应为0。当我在SQLServerManagementStudio中运行它时,我可以得到返回值。我做错了什么?

我不相信
execute\u procedure
会返回一个数组,这正是您需要的。你想要的是结果。可能是
ActiveRecord::Base.connection.execute_procedure(“procedure”,params[:field1],params[:field2],params[:field3]),以_a

点击
ActiveRecord::Base.connection。执行_过程(“过程”,参数[:field1],参数[:field2],参数[:field3])。检查
以查看发生了什么,或者您可以查看是否实现了对json的

最后,
ActiveRecord::Base.connection.execute_procedure(“procedure”,params[:field1],params[:field2],params[:field3])。方法将返回可用的方法

我从中找到了答案。我需要运行这个过程,然后从原始连接获取返回值,如下所示

ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2]
@success = ActiveRecord::Base.connection.raw_connection_return_code

该方法的源代码在这里。结果在此方法中声明为空数组,并且.methods给出的所有方法似乎都暗示它是一个数组。当我使用to_json时,它也显示了一个空数组。我正在寻找实际过程返回的1或0。那么
#result
#first
呢?它们之间没有任何区别。我认为应该是
ActiveRecord::Base.connection.raw\u connection.return\u code
而不是'ActiveRecord::Base.connection.raw\u connection\u return\u code'