2011-02-06 4 views
1

레일즈 3.0.3에서 실행하고 싶은 레일스 2.3.x 코드가 있지만, JSON에서 ActiveRecord 코드로 실패하는 것 같습니다. 여기에 내가 할 것입니다 : MyModel.new.from_json에서 Rails 3.0.3에 데이터가 없습니다.

mymodel = MyModel.new.from_json(json_string)

내가 여기 오류를 얻을 수 없지만, 내 json_string에 데이터가 없었지만,이처럼 내 객체가 비어 있습니다. API (http://apidock.com/rails/ActiveRecord/Serialization/from_json)를 보면 3.x에서 지원되지 않기 때문에 나에게 보이거나?

ActiveSupport :: JSON.decode로 시도했지만 키/해시 테이블의 해시 테이블로 디코딩됩니다.

답변

0

동일한 문제가 여기에 있습니다. 범인은 여기 https://github.com/rails/rails/commit/c1d73270717f30498f8f4d55d6695509107c2834 인 설명입니다 http://www.simonecarletti.com/blog/2010/04/inside-ruby-on-rails-serializing-ruby-objects-with-json/

이 솔루션은 대신 "@의 obj.from_json (JSON)"의

 
    @obj.attributes = ActiveSupport::JSON.decode(json) 

를 사용하는 것이 참으로 보인다. 적어도 ActiveRecord 객체의 경우, 이것은 저에게 적합합니다.

관련 문제