我正在关注Wash_Out页面上的指南。当我调用其中一个SOAP方法时,我收到以下错误:
NoMethodError (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]):
API控制器看起来像这样
class ApiController < ApplicationController
include WashOut::SOAP
soap_action "integer_to_string",
:args => :integer,
:return => :string
def integer_to_string
render :soap => params[:value].to_s
end
soap_action "concat",
:args => { :a => :string, :b => :string },
:return => :string
def concat
render :soap => (params[:a] + params[:b])
end
end
对WSDL的请求运行正常。我还将此列为所述库的bug report。我无法确定这是一个Rails问题还是一个Wash Out问题。 params变量在正常的控制器操作中可用。
版本:
答案 0 :(得分:3)
这是Savon的一个错误,实际上是%)。哪个得到了wash_out。要修复此问题,只需在您的Gemfile中添加“gem'savon'”即可。将在即将推出的版本中修复。
您应该升级到wash_out 0.3.0。它包含许多改进和错误修复。