/ / TypeError: žiadna implicitná konverzia symbolu na celé číslo pri čítaní YAML v Ruby - Ruby-on-Rails, Ruby, Yaml

TypeError: žiadna implicitná konverzia symbolu na celé číslo pri čítaní YAML v Ruby - ruby ​​na koľajniciach, ruby, yaml

V module v mojej aplikácii Rails mám definované:

module Selecting
module Execution
class ExecuteSpecific

def self.perform!
input = Data::FetchData.new.perform_action(param1, params2)

Aby bol kód všeobecnejší, chcem z funkcie odstrániť konkrétny spôsob volania a prepnúť ho do súboru YAML ako taký:

:Newname:
- example: "Data::FetchData.new.perform_action(param1, params2)"

a vyššie uvedené písmeno („meno“ by malo byť uvedené ako symbol):

module Selecting
module Execution
class ExecuteSpecific

def self.perform! name

new = YAML.load_file("path/to/file.yml")[name]
input = new[:example]

Tento návrat a

TypeError: žiadna implicitná konverzia symbolu na celé číslo

Ako je to možné?

odpovede:

1 pre odpoveď č. 1

Táto chyba hovorí, že používate symbol, ak očakáva celé číslo. Jediné miesto, ktoré robíte, je miesto, kde voláte new[:example]. Yaml.load_file vráti pole reťazcov a nie symbolov, takže ak pristupujete k svojmu dokumentu yaml načítanému pomocou indexu reťazcov namiesto symbolu, ktorý by mal problém vyriešiť.

Napr. input = new["example"]