我有一個統計模型反序列化數據庫對象
class Statistic < ActiveRecord::Base
serialize :value
end
該模型包含含有目標對象一個值屬性。我想反序列化的目標對象
當我做
goals = Statistic.all
goals.each do |goal|
test = goal.value
end
我得到一個錯誤
value was supposed to be a Goals, but was a String
在調試器中我看到goal.value是String類型的,並且包含目標數據
--- !ruby/object:Goals \ngoals: {}\n\ngoals_against: 1\ngoals_for: 0\nversion: 1\n
當我添加serialize :value, Goals
時,我得到以下錯誤時,反序列化
ActiveRecord::SerializationTypeMismatch in ClubsController#new
value was supposed to be a Goals, but was a String
的目標類
class Goals
attr_accessor :goals
attr_accessor :goals_for
attr_accessor :goals_against
attr_accessor :goals_own
attr_accessor :penalty_for
attr_accessor :penalty_against
def initialize(goals = nil, goals_against = nil, goals_own = nil, penalty_for = nil, penalty_against = nil)
@version = 1
if goals.nil?
@goals = {}
else
@goals = goals
end
@goals_against = goals_against.to_i
@goals_own = goals_own.to_i unless goals_own.nil?
unless penalty_for.nil?
@penalty_for = penalty_for.to_i
@penalty_against = penalty_against.to_i
end
set_goals_for()
end
private
def set_goals_for
@goals_for = 0
@goals.each_value {|value| @goals_for += value.to_i }
@goals_for += @goals_own unless @goals_own.nil?
end
end
有人知道我怎樣才能使導軌知道它的目標對象,而不是一個字符串?
感謝
你能複製粘貼你的目標課嗎?你也可以嘗試爲「值」db列設置默認值作爲空對象「--- []」 – Anatoly
如何添加空對象?我正在使用sqlite進行開發 – Tarscher
我現在看到你的Goals類。序列化將不起作用,直到您爲目標類別 – Anatoly