簡體   English   中英

Rails ActiveRecord serialize方法在測試環境中不起作用

[英]Rails ActiveRecord serialize method doesn't work in test environment

我在測試中遇到了ActiveRecord 序列化方法的反序列化問題。
它只是給我純String而不是我的數據Array。

例:

User > ActiveRecord::Base
   serialize :roles, Array
end

安慰:

u = User.new
u.roles = ["admin", "support"]
u.save
# => true

User.first.roles
# => ["admin", "support"]

在測試環境中:

User.first.roles
# => "--- \n- admin\n- support\n"

它是一個字符串。 似乎YAML序列化不在那里工作,但我不知道如何使其工作。

我已經試圖與弄明白這個這個這個這個 ,但沒有運氣。

任何建議將不勝感激。
馬丁

畢竟要繞過這個,我需要直接調用數據庫中的數據而不涉及“序列化”AR方法。

YAML::load(User.first.roles_before_type_cast)

而現在測試環境也直接解析數據並給我正確的角色Array。

我不知道它是否解決了你的問題,但你總是可以從字符串中取回數組

YAML::load("--- \n- admin\n- support\n")
# => ["admin", "support"]

因此,在您的測試環境中,您應該這樣做

YAML::load(User.first.roles)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM