【发布时间】:2010-03-22 06:39:10
【问题描述】:
我完全被这个问题的本质难住了。
我们将数据从我们的应用程序导出到一个“已清理”的 YAML 文件中(去除 ID、created_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]
这非常好,因为属性还包括您看到 exception_count 的(关联模型)异常。
但是在生产环境中(rails 2.3.2,运行 REE 1.8.7 和 1.8.6 进行测试,在两个不同的生产环境中进行测试,并在本地运行生产环境)它会返回 YAML 中的对象数组 - 在这种情况下, 事件:
[#<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 解析器会在生产和开发之间表现如此不同?
我在 Rails 2.3.2 上,运行 REE 1.8.7;但是我也测试了运行 Ruby 1.8.6 的结果完全相同。
感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails ruby yaml