Estoy tratando de crear una matriz de ruby ​​para poder almacenar algunos datos y crearlos en un objeto JSON para almacenarlos en la BASE DE DATOS.

browser_meta = Array.new
        browser_meta.name = browser.name;
        browser_meta.version = browser.full_version;
        browser_meta.platform = browser.platform;
        browser_meta.name = browser.name;
        browser_meta.name = browser.name;

Error:

undefined method `name=' for []:Array
-3
Harsha M V 30 ene. 2015 a las 10:19

2 respuestas

La mejor respuesta

Array es una mala elección para la estructura de datos de valor clave. Utilice hash en su lugar:

browser_meta = { name: browser.name, version: browser.full_version .....}

Entonces puedes convertirlo a json con

require 'json'
browser_meta_json = browser_meta.to_json
4
Erez Rabih 30 ene. 2015 a las 07:23

O si desea poder acceder a los valores usando la notación de puntos:

http://www.ruby-doc.org/stdlib-2.0/libdoc/ostruct/rdoc/OpenStruct.html

require 'ostruct'

person = OpenStruct.new
person.name    = "John Smith"
person.age     = 70
person.pension = 300

puts person.name     # -> "John Smith"
puts person.age      # -> 70
puts person.address  # -> nil
1
hirolau 30 ene. 2015 a las 12:02