• 你为何如此优秀?

  • 加油

  • 支持~

  • 别给自己刨坑了

  • 可读性 > 可扩展 > 优雅【这是三个不同的层面】

    上面的都可以,我再写一种:

    params.delete_if{|k, v| v.blank?}.values[0]
    
  • 你这个串是符合json标准的字符串,并不是一个数组对象。你需要把它解析成ruby对象,这个对象就是你要遍历取值的数组。 是我上面写的不够清晰吗😆另外你上一条帖子也是同类的问题

  • paginate

    • 部分源码

      module Pagination
        def paginate(options)
          options.delete(:page)
          per_page = options.delete(:per_page) || self.per_page
          total    = options.delete(:total_entries)
      
          if options.any?
            raise ArgumentError, "unsupported parameters: %p" % options.keys
          end
      
        end
      end
      
  • eval

    def fetch_value(column)
      values = []
      parse_str =  "[{\"alarmSeverity\"=>\"\", \"securityName\"=>\"\", \"authPass\"=>\"\", \"ip\"=>nil, \"resources\"=>[\"9999994\", \"9999990\", \"9999991\", \"9999992\", \"9999993\"], \"updateTime\"=>\"2018-07-04 16:06:41\", \"community\"=>\"\", \"type\"=>nil, \"version\"=>\"2c\", \"authProtocol\"=>\"\", \"alarmType\"=>\"\", \"createTime\"=>\"2018-07-04 16:06:41\", \"port\"=>nil, \"name\"=>\"1\", \"privProtocol\"=>\"\", \"id\"=>\"bd41966778b84176a621bcd326d5f357\", \"privPass\"=>\"\", \"resourceType\"=>\"1\"}, {\"alarmSeverity\"=>\"\", \"securityName\"=>\"\", \"authPass\"=>\"\", \"ip\"=>nil, \"resources\"=>[\"9999994\", \"9999990\", \"9999991\", \"9999992\", \"9999993\"], \"updateTime\"=>\"2018-07-04 16:06:22\", \"community\"=>\"\", \"type\"=>nil, \"version\"=>\"\", \"authProtocol\"=>\"\", \"alarmType\"=>\"\", \"createTime\"=>\"2018-07-04 16:06:22\", \"port\"=>nil, \"name\"=>\"\", \"privProtocol\"=>\"\", \"id\"=>\"7c6c388e120648749edb86c3ca70a946\", \"privPass\"=>\"\", \"resourceType\"=>\"1\"}, {\"alarmSeverity\"=>\"1\", \"securityName\"=>\"test\", \"authPass\"=>\"testpwd1\", \"ip\"=>nil, \"resources\"=>[\"9999994\", \"9999990\", \"9999991\", \"9999992\", \"9999993\"], \"updateTime\"=>\"2018-07-04 15:06:55\", \"community\"=>\"public\", \"type\"=>nil, \"version\"=>\"v3\", \"authProtocol\"=>\"SHA\", \"alarmType\"=>\"1\", \"createTime\"=>\"2018-07-04 15:06:55\", \"port\"=>nil, \"name\"=>\"test_subscribe\", \"privProtocol\"=>\"加密RSA\", \"id\"=>\"b3b82abf62124d0d90f7098d6bca9ec1\", \"privPass\"=>\"testpwd2\", \"resourceType\"=>\"\"}]"
      result = eval parse_str
      result.each{|temp| values.push(temp[column])}
      values
    end
    p fetch_value('id')
    
  • 那你根据key去除每个value值就行了

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

我已踏上ruby on rails这趟高速列车,带我装逼带我飞