使用Curb gem从文件中收集了一些JSON,我将其中的一部分分配给实例变量:
self.json_stuff = {"title" => json["title"], "description" => json["description"], "image" => json["image"]}.to_json
然后以JSON:
的形式存储在数据库中serialize :json_stuff, JSON
...
self.save
稍后我会检查是否存在json_stuff
:
return self.json_stuff.present?
并收到以下错误:
TypeError - no implicit conversion of Hash into String:
json (1.8.3) lib/json/common.rb:155:in `initialize'
json (1.8.3) lib/json/common.rb:155:in `new'
json (1.8.3) lib/json/common.rb:155:in `parse'
我已经完成了代码,我知道文件中的JSON集合没有问题。
答案 0 :(得分:1)
据我所知, present?方法是针对字符串来检查它们是否为空。如果你只想根据 json_stuff 的存在返回布尔值,你应该检查它是否是 nil ,例如
return self.json_stuff.nil?
self.json_stuff 的类型是 Hash 而不是 String 。