我完全難以理解這個問題的本質。Yaml :: load_file在開發和生產之間的行爲不同(Rails)
我們從我們的應用程序導出數據到一個'清理'YAML文件(剝離ID,created_at等)。然後我們(將)允許用戶將這些文件重新導入到應用程序中 - 這是導致完全困擾我的輸入。
在發展,YAML::load_file(params[:uploaded_data].local_path)
返回YAML數組::對象的(而且並不重要的文件可以加載不同的方式數):
[#<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解析器在生產和開發之間表現如此不同?
我在軌道2.3.2上運行稀土元素1.8.7;不過我也測試過運行Ruby 1.8.6的結果。
感謝您的幫助!
謝謝瑞恩,現貨!調用'Event'使開發的行爲與生產完全相同,並返回Event對象。 爲了獲得我所需的結果(我可以操作的原始Yaml對象),我將事件中導出的類標記更改並很好。 再次感謝您的幫助! – James 2010-03-22 13:23:01