has_one
关联(这是一个虚构的例子):
class Person::Admin < ActiveRecord::Base
has_one :person_monthly_revenue
has_one :dude_monthly_niceness
accepts_nested_attributes_for :person_monthly_revenue, :dude_monthly_niceness
end
class Person::MonthlyRevenue < ActiveRecord::Base
belongs_to :person_admin
end
class Dude::MonthlyNiceness < ActiveRecord::Base
belongs_to :person_admin
end
应用程序与后端通信,后端计算一些数据并返回一段JSON,如下所示:
{
"dude_monthly_niceness": {
"february": 1.1153232569518972,
"october": 1.1250217200558268,
"march": 1.3965786869658541,
"august": 1.6293418014601631,
"september": 1.4062771500697835,
"may": 1.7166279693955291,
"january": 1.0086401628086725,
"june": 1.5711510228365859,
"april": 1.5614525597326563,
"december": 0.99894169970474289,
"july": 1.7263264324994585,
"november": 0.95044938418509506
},
"person_monthly_revenue": {
"february": 10.585596551505297,
"october": 10.574823016656749,
"march": 9.9125274764852787,
"august": 9.2111604702328922,
"september": 9.7905249446675153,
"may": 9.1329712474607962,
"january": 10.479614016604238,
"june": 9.3710235926961936,
"april": 9.5897372624830304,
"december": 10.052587677671438,
"july": 8.9508877843925561,
"november": 10.925339756096172
},
}
from_json
,而不是
Person::Admin
对象的所有关联就绪后,我得到以下错误:
>> Person::Admin.new.from_json(json)
NameError: uninitialized constant Person::Admin::DudeMonthlyNiceness
有没有更好的方法来反序列化数据(我可以很容易地修改后端)
更新
:最初的标题是“如何将json反序列化为具有关联的ActiveRecord对象?”,但它最终是我指定关联时的错误,因此我更改了标题。