Сериализация и десериализация объекта ActiveRecord в базу данных - PullRequest
1 голос
/ 05 июля 2010

Я бы хотел десериализовать сериализованный объект. Так что можно обрабатывать такие как (с JSON):

>> l = Yea.create(:title => "foo bar")
=> #<Yea id: 3, title: "foo bar", created_at: "2010-07-05 21:44:54", updated_at: "2010-07-05 21:44:54">
>> j = l.to_json
=> "{\"yea\":{\"created_at\":\"2010-07-05T21:44:54Z\",\"title\":\"foo bar\",\"updated_at\":\"2010-07-05T21:44:54Z\",\"id\":3}}"
>> Yea.delete(3)
=> 1
>> a = ActiveSupport::JSON.decode(j)
=> {"yea"=>{"created_at"=>"2010-07-05T21:44:54Z", "title"=>"foo bar", "updated_at"=>"2010-07-05T21:44:54Z", "id"=>3}}
>> Yea.create(a[:yea])
=> [#<Yea id: 4, title: "foo bar", created_at: "2010-07-05 21:44:54", updated_at: "2010-07-05 21:44:54">]

Но я хотел бы написать это немного более обобщенно, используя что-то вроде:

ActiveRecord.create(a)

вместо:

Yea.create(a[:yea])

Ты знаешь, как это сделать? Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 06 июля 2010

Не могли бы вы просто сохранить идентификатор? Это позволит вам передавать идентификатор в любом месте и не беспокоиться о содержимом.

0 голосов
/ 05 июля 2010

Я думаю, что это может быть так же просто, как:

require 'yaml'
@article = YAML::load(@serialized_copy)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...