У меня проблемы с небольшим Ruby на Rails, которые я строю, и мне нужна помощь. У меня есть таблица с 20+ столбцами и соответствующий файл XML, который можно проанализировать как драгоценный камень типа ha sh. Каждый ключ будет отображен в столбце, а каждое значение будет записью данных в указанном столбце.
Способ доступа к указанному c значению в уже проанализированном файле XML:
filename["crs","inputkeyhere"]
, которое возвращает значение, например, "52" или что-то еще.
Я пытаюсь загрузить файл, разобрать его с гемом и присвоить каждому столбцу соответствующее значение.
Моя таблица (или модель) называется «Атрибут», и я уже знаю, как получить доступ к каждому столбцу:
@attributeset = Attributeset.new
@attributeset.attributes.keys
Итак, мой мыслительный процесс был:
- Переберите все ключи
- Передайте каждый ключ в блок с именем | a |
- Используйте возможность rails для установки атрибутов, вызывая соответствующий @ attributeset.
- Установите атрибут colum на соответствующий xml ключ
Так что мой код будет go примерно так:
@attributeset.attributes.keys.each do |a|
@attributeset.a=filename["crs",a]
end
Но моя проблема в том, что ruby думает ".a" является методом и, по-видимому, не оценивает «a» для параметра блока. Я прочитал лямбды и проки и еще много чего, но не совсем понял, как они могут работать для моей конкретной c ситуации.
Исходя из bash сценариев, может быть, мое мышление может быть неправильным, но я подумал, что .a может быть оценен. Я знаю, что могу запустить блок с yield, но, насколько я знаю, это работает только в методах.
Любая помощь приветствуется. Спасибо и будь здоров, Алекс