ruby-on-rails-3 – 无法将HashWithIndifferentAccess转换为Stri
发布时间:2020-12-17 01:27:26 所属栏目:百科 来源:网络整理
导读:我有一个哈希发布到我的Rails应用程序,看起来像这样: {"signed_request"="...","buyer"="1064897036","receiver"="1064897036","order_id"="224539980951036","method"="payments_get_items","test_mode"="1","order_info"={"description"="None","image_ur
我有一个哈希发布到我的Rails应用程序,看起来像这样:
{"signed_request"=>"...","buyer"=>"1064897036","receiver"=>"1064897036","order_id"=>"224539980951036","method"=>"payments_get_items","test_mode"=>"1","order_info"=>{"description"=>"None","image_url"=>"","price"=>"1","product_url"=>"","title"=>"Premium Membership"}} 我正在借用一些代码来解析它并发回相应的响应.首先,我解析已签名的请求,该工作正常,然后我构建订单信息以将其发送回服务器.这就是麻烦开始的地方,似乎: ... elsif method == 'payments_get_items' order_info = params[:order_info] item = JSON.parse(order_info) item['price'] = item['price'].to_i # for url fields,if not prefixed by http://,prefix them url_key = [ 'product_url','image_url' ] url_key.each do |key| if item[key][0..6] != 'http://' item[key] = "http://#{item[key]}" end end # if payload['test_mode'] if request.params['test_mode'] update_keys = ['title','description'] update_keys.each do |key| item[key] = '[Test Mode] ' + item[key] end end data['content'] = [item] end data['method'] = method render :json => data end 我收到这个错误: can't convert ActiveSupport::HashWithIndifferentAccess into String 这是由这条线引起的: item = JSON.parse(order_info) 我不确定这意味着什么.替代方案,我想…是我可以让服务器传递一个项目号,然后我可以查询数据库并自己将信息作为JSON提取,而不是尝试解析哈希,但我想如果可以的话,让这项工作.有什么想法吗? 解决方法
这里没有需要解析的JSON.你的params哈希只是一个嵌套的哈希,所以你需要做的就是访问嵌套:order_info数据是item = params [:order_info]
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 如何获取我的Rails应用程序的基本URL(例如
- XML的四种解析方式
- 使用Ajax与服务器(JSON)通信实例
- objective-c – mac app store错误
- 线程结构作为函数参数C
- cocos2dx--CCSprite,CCSpriteFrame,CCTexture,CCSpriteBatc
- VBScript文件操作对象FileSystemObject大全
- ios – CocoaPods:添加到项目中的新目标找不到CocoaPods H
- ruby-on-rails – 如何在不破坏FactoryGirl的情况下将seeds
- 小胖说swift08-------- swift怎么重写父类的init方法