2014-12-23 48 views
11

在大多數控制器測試中,此警告顯示適用於我(針對所有人)。我知道它只是一個警告......現在......直到5日發佈。我不確定我需要改變以符合這種棄用。 serialized_attributes有哪些變化?我想讓這個警告消失,並改善我的代碼準備5.0 ...但不確定如何繼續。謝謝。Rails 4.2 DEPRECATION警告:`serialized_attributes`已棄用而不更換,

更新

當打從控制器測試標準的更新動作......我得到的錯誤:

@document.update_attributes(document_params) 

測試(凝聚在這個例子中):

before do 
     @document = documents(:drivers_license) 
    end 

    def valid_params 
     { name: 'Passport' } 
    end 

    it "must update document" do 
     put :update, id: @document, document: valid_params 
     assert_redirected_to documents_path 
    end 

此測試通過,但現在在rails 4.2中出現錯誤:DEPRECATION WARNING:serialized_attributes已棄用,未替換,並將在Rails 5.0中刪除。「

因此,在這個例子中...是serialized_attributes「{name:'Passport'}」?

+1

知道如何解決它,將取決於你如何使用它。 – sevenseacat

+1

僅僅因爲某些事情被認爲對整個社區不利,並不意味着它對你沒有好處。您可以使用https://github.com/rails/rails/blob/4-2-stable/activerecord/lib/active_record/attribute_methods/serialization.rb中包含serialized_attributes的方法擴展您的ActiveRecord模塊。但是,如果此棄用警告來自您正在使用的gem而不是來自您的代碼,那麼您很可能希望與該gem的作者打開票據/問題,以便能夠適應未來版本的Rails。 – kobaltz

+1

本次討論中討論了棄用:https://github.com/rails/rails/pull/15704。這個警告有點令人驚訝,應該至少包含Rails升級指南的參考。 – mahemoff

回答

8

您是否使用過paper_trail寶石?如果是這樣,該項目中的see issue #416

+1

我正在使用paper_trail。感謝那。 – hellion

+1

升級到paper_trail的v4測試版(查看該問題)刪除了我的警告。 @hellion如果爲你解決了問題,請接受這個答案。雖然這是一個通用的Rails更新,但實際上大多數開發人員可能會遇到這種情況,因爲有一些像paper_trail和rails_admin這樣的寶石。 – mahemoff

相關問題