Я полностью озадачен природой этой проблемы.
Мы экспортируем данные из нашего приложения в «очищенный» YAML-файл (удаление идентификаторов, create_at и т. Д.).Затем мы (будем) позволять пользователям импортировать эти файлы обратно в приложение - это импорт, который меня полностью выводит из строя.
В процессе разработки YAML::load_file(params[:uploaded_data].local_path)
возвращает массив YAML :: Objects (и этоне имеет значения, какой из множества способов загрузки файла может быть):
[#<YAML::Object:0x3c63984 @class="Event", @ivars={"attributes"=>{"exception_count"=>"0", "title"=>"Start", "amount"=>"70.00", "colour"=>nil, "repeat_type_id"=>"0", "repeat_interval"=>"1"}}>, etc etc]
Это очень хорошо, поскольку атрибуты также включают исключения (связанные с моделью), для которых вы видите исключение_счет.
Однако на производстве (рельсы 2.3.2, запуск REE 1.8.7 и 1.8.6 для тестирования, тестирование на двух разных производственных средах и локальный запуск производства) возвращает массив объектов в YAML -в этом случае Event:
[#<Event title: "Start", amount: #<BigDecimal:3af2640,'0.7E2',4(8)>, repeat_type_id: 0, colour: nil, repeat_interval: 1, exception_count: 0>, etc etc]
Теперь это было бы просто недоумением, если бы оно включало в него и связанное с ним исключение модели - однако это не так.понять, почему анализатор Yaml будет вести себя так по-разному между производством и разработкой?
Я на рельсах 2.3.2, использую REE 1.8.7;однако я также протестировал запуск Ruby 1.8.6 с точно такими же результатами.
Спасибо за любую помощь!