2014-09-26 2 views
1

내 포스트 모델에 versioned을 추가했습니다. 예를 들면 다음과 같습니다.vestal_versions는 레일즈 콘솔에서 버전을 증가 시키지만 UI는 사용하지 않습니다.

1.9.3-p448 :040 >p = Post.first 
1.9.3-p448 :041 > p.version 
=> 1 

그런 다음 Google 웹 사이트의 UI를 통해 게시물을 업데이트합니다. 서버 로그를보고 변경 사항이 저장됩니다. 콘솔에

돌아 가기 :

1.9.3-p448 :054 > p.version 
=> 1 

변화 없음. 그러나, 나는 이것을한다 :

1.9.3-p448 :059 > p.update_attributes(category: "Announcements") 
    (1.3ms) BEGIN 
    SQL (2.2ms) UPDATE "posts" ... 
=> true 
1.9.3-p448 :060 > p.version 
=> 2 

UI를 통해 레코드를 업데이트 할 때 버전이 명령 줄에서 업데이트되는 이유는 무엇입니까?

답변

0

나는 이것이 Post 자체를 참조하기보다는 Post의 데이터 복사본을 할당 받는다는 사실에 기인한다고 생각한다. 내 변수를 동일한 객체에 재 할당하면 버전 번호에 UI를 통해 이루어진 업데이트가 반영된 것처럼 보입니다. 예컨대 :

p = Post.find(1) 
p.version 
=>1 

(I 다음 UI를 통해 포스트 1을 업데이트)

p.version 
=> 1 
p = Post.find(1) 
p.version 
=> 2