Rails 测试

GSTA_Yalo · June 26, 2018 · Last by GSTA_Yalo replied at July 02, 2018 · 1561 hits

test

看一下你 resp.body.split(",") 拿到的是什么类型的数据,应该不是 ActiveRecord::Relation

数据就是接口吐上来的,上面已经贴出来,应该是 string。

Reply to GSTA_Yalo

我说的意思是你把@subscribe.class 一下截个图我看看是什么类型如果是 String 的话,你试试下面的方案 ->
首先:你需要 JSON.parse 一下得到一个 new_hash
然后:new_hash[:subscribs] 得到一个数组,遍历取出来就行了
最后:你得到的不是一个 ActiveRecord::Relation 对象不能那么取值

4 Floor has deleted

那你根据 key 去除每个 value 值就行了

你说的方案是这样吗? new_hash = JSON.parse(resp.body) @subscribe = new_hash[:subscribes]

上面的是一种思路,我再给你提一种:

# 后台
@subscribe = JSON.parse(resp.body, object_class: OpenStruct).subscribes

前台什么都不用改,你试试。

原理就是按照你前台访问的形式你其实希望得到的是一个类似 OpenStruct 的对象,在后台构建出这种对象就行了。

Reply to pinewong

这个接口里面的 json 值都是加了“\”的,解析前需要先将这些反斜杠去除吗?

Reply to GSTA_Yalo

不用。反斜杠是 Ruby 表示字符串时自己加上去的,不是 json 里的

Reply to pinewong

按照你的方法,系统会报错: 按照 trap_subscribe = JSON.parse(resp.body) @subscribe = trap_subscribe[:subscribes] 这种方法,会提示: 😂

用这种方法,new_hash[:subscribs] 是空类。

GSTA_Yalo closed this topic. 22 Jan 17:22
You need to Sign in before reply, if you don't have an account, please Sign up first.