在大多數控制器測試中,此警告顯示適用於我(針對所有人)。我知道它只是一個警告......現在......直到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'}」?
知道如何解決它,將取決於你如何使用它。 – sevenseacat
僅僅因爲某些事情被認爲對整個社區不利,並不意味着它對你沒有好處。您可以使用https://github.com/rails/rails/blob/4-2-stable/activerecord/lib/active_record/attribute_methods/serialization.rb中包含serialized_attributes的方法擴展您的ActiveRecord模塊。但是,如果此棄用警告來自您正在使用的gem而不是來自您的代碼,那麼您很可能希望與該gem的作者打開票據/問題,以便能夠適應未來版本的Rails。 – kobaltz
本次討論中討論了棄用:https://github.com/rails/rails/pull/15704。這個警告有點令人驚訝,應該至少包含Rails升級指南的參考。 – mahemoff