未定义的方法`values_at'为nil:当我使用WashOut宝石时为NilClass

时间:2014-06-03 02:45:06

标签: ruby-on-rails ruby soap savon wash-out

我是WSDL的新手。 代码(我已在视图中直接添加 - 进行测试):(页面:http://localhost:3000/ccapis

   require 'savon'
   client = Savon::Client.new(wsdl: "http://localhost:3000/ccapis/wsdl")
   result = client.call(:fetch_prizes, message: { :gl_id => "123456789" })
   result.to_hash

在控制器中:

soap_action "fetch_prizes",
              :args   =>  { :gl_id => :string },
              :return => [:array]
  def fetch_prizes
        glnumber = params[:gl_id ]
        prize = Prize.where(:gl_id  => glnumber)
        prize_to_show = []
        a_hash = {}
        prize.each do |p|
            a_hash = { :prize => p.prize.to_s, :score => p.score.to_s, :date => p.round_date.to_s }
            prize_to_show.push  a_hash
            a_hash = nil
        end
      render :soap => prize_to_show
  end

当我尝试在控制台中运行时,一切都很好,我可以看到result.to_hash但是当我转到http://0.0.0.0:3000/ccapis时,我收到了上面提到的错误。

解释我想要实现的目标: 我需要为客户端提供WSDL,该客户端根据分数获取所有奖品。

如果我的方法有误,请指导我一份文件,这样我就可以阅读并更好地理解。再次感谢。

0 个答案:

没有答案