我的 Controller 中有以下方法
@content = Post.where(sub_category_id: id).select('content')
unless @content.nil?
@content.each do |content|
form_array = JSON.parse(content.content)
array_test << form_array.values
end
我的内容列的值为 null
,因此我收到的错误为
JSON::ParserError (757: unexpected token at 'null'):
但是为什么除非循环不起作用。当列具有 null
值时执行循环如何防止它
编辑-1
假设我的数据库表中有两行
其中一个是{"Style":"coupe","Year":"2012","Color":"green"}
#这很好用
第二个是null
#但是失败了
最佳答案
你的@content是一个数组,并且可以包含超过1个元素,所以,这意味着它可以包含单个元素的元素也可以值为null
,但是数组里面有一个元素,所以在您的情况下,您的条件将失败,它应该是:
@content.each do |content|
unless content.nil?
form_array = JSON.parse(content.content) if content.content.present?
array_test << form_array.values
end
end
关于ruby-on-rails - Rails 4 JSON::ParserError (757: 'null' 处的意外标记):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20016516/