es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ruby on Rails: función para encontrar un valor por clave.

Acabo de encontrarme con un problema de sintaxis en Ruby:

El ejemplo de enum es:

class AaaBbb < ApplicationRecord
enum number: { a: 1, b: 2, c: 3, d: 5 }

o bien

class AaaBbb < ApplicationRecord
enum number: { "a" => 1, "b" => 2, "c" => 3, "d" => 5 }

La función es:

def find_value
  AaaBbb.numbers.each do |key, value|
      puts "#{key} = #{value}"
    if key == AaaBbb.numbers[:key] (CÓDIGO EQUIVOCADO AQUÍ, NECESITA SER CORREGIDO)
      return value
    else
      return 0
    end
  end
end

Así que estoy intentando escribir una función que, si encuentra la clave, devuelve el valor.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El código que has escrito es incorrecto. Necesitas usar el método find para buscar la clave en el hash AaaBbb.numbers. El código correcto debería ser:

    def find_value
      AaaBbb.numbers.each do |key, value|
        puts "#{key} = #{value}"
        if AaaBbb.numbers.find { |k, v| k == key }
          return value
        else
          return 0
        end
      end
    end
    

Comments are closed.