Тире в имени свойства не получает NoMethodError


person Larry Mai    schedule 22.04.2012    source источник
comment
Это я был виноват. У меня была старая версия геммы.   -  person Larry Mai    schedule 27.04.2012


Ответы (2)


Выражение в вашем ERB будет проанализировано как вычитание значения переменной даты из результата вызова метода start() объекта позиции. Дефисы недопустимы в идентификаторах в Ruby.

Я недостаточно знаком с драгоценным камнем LinkedIn, чтобы предложить решение, за исключением того, что скажу, что, поскольку он основан на XML API, вам следует искать способ вручную извлечь данные из пары тегов. Большинство подобных драгоценных камней предлагают такой метод. Кроме того, это отличный случай для использования IRB в качестве исследовательского инструмента: запустите сеанс IRB и посмотрите, что произойдет, когда вы вызовете position.methods, конечно, после правильного создания переменной position. Я предполагаю, что вы увидите что-то в этом списке, что предлагает ответ.

person Alex Westholm    schedule 22.04.2012

Похоже, он возвращает Hashie::Mash, который преобразует ключи с несколькими дополнительными правилами: https://github.com/pengwynn/linkedin/blob/master/lib/linked_in/mash.rb

Вы сказали, что уже пробовали position.start_date, верно? Это должно сработать. Но если нет, пробовали ли вы position['start-date'] или position['start_date'], один из этих двух также должен работать, так как это Mash.

person mltsy    schedule 29.11.2012