如何轉換爲JSON並返回並保持關係?它認爲當我解開對象時它們不存在!我如何保持has_many:通過關係序列化到JSON和返回到Rails 4.0.3?
irb(main):106:0* p = Post.last
=> #<Post ...
irb(main):107:0> p.tags
=> #<ActiveRecord::Associations::CollectionProxy [#<Tag id: 41, ...
irb(main):109:0* p.tags.count
=> 2 #### !!!!!!!!!!!!
irb(main):110:0> json = p.to_json
=> "{\"id\":113,\"title\":... }"
irb(main):111:0> p2 = Post.new(JSON.parse(json))
=> #<Post id: 113, title: ...
irb(main):112:0> p2.tags
=> #<ActiveRecord::Associations::CollectionProxy []>
irb(main):113:0> p2.tags.count
=> 0 #### !!!!!!!!!!!!
這裏是模型
class Post < ActiveRecord::Base
has_many :taggings, :dependent => :destroy
has_many :tags, :through => :taggings
什麼有人建議,但不工作
irb(main):206:0* Post.new.from_json p.to_json(include: :tags)
ActiveRecord::AssociationTypeMismatch: Tag(#60747984) expected, got Hash(#15487524)
你調用'p2 = Post.new(JSON.parse(json))'這不會保存到db。並在你的db上調用'p2.tags.count'查詢,但不保存數據。 –
@Monk_Code沒有,但仍然無法正常工作。另請參閱下面的答案評論。 '> p2 = Post.new(JSON.parse(json))' 'ActiveRecord :: AssociationTypeMismatch:Tag(#62190408)expected,got Hash(#15487524)' – Chloe