2
내 AR : B에 직렬화 가능하지 않은 특성이 있습니다.Ruby에 속성을 직렬화하지 않거나 marshal_dump를 제대로 오버로드하는 방법을 알려주는 방법은 무엇입니까?
o = Discussion.find(6)
Marshal.dump(o)
TypeError: no marshal_dump is defined for class Proc
from (irb):10:in `dump'
나는 범인을 알고 내가 원하는 모든 직렬화가 발생하기 전에 전무 이 변수를 설정하는 것입니다.
나는이 작업을 수행 할 수 있지만 대체 할 적절한 방법과 붙어있어 marshal_dump
def marshal_dump
@problem = nil
# what is the right return here?
end
또는이 루비를 말하는 방법 또는 객체를 직렬화하지 AR입니까?
감사합니다 마크를. 올바른 코드는 instance_variable_set (: @ attributes, data)입니다. 그렇지 않으면 예외가 발생합니다. – GregMoreno
@GregMoreno : 아니요, 저는 AR의 속성을 설정하는 유용한 방법 인'ActiveRecord :: Base # attributes ='를 호출하려고합니다. 'marshal_load'에 속성을 설정하고 싶다면 간단히'@some_attr = data [: some_attr]'를 쓸 수 있습니다. –