3

가능한 중복 :
Stop ActiveRecord saving a serialized column even if not changedActiveRecord가 변경되지 않은 직렬화 된 열을 저장하지 못하게하는 방법은 무엇입니까?

는 I는 액티브에서 serialize D 컬럼을 갖는다. 아무 것도 변경되지 않아도 데이터를 저장하기 때문에 더티 상태를 추적하지 않습니다.

> p = Product.first 
> p.save! 
    UPDATE `products` SET `updated_at` = '...', `additional_data` = '--- \n' WHERE `products`.`id` = 2 

변경 사항이 없을 때 업데이트되지 않도록 할 수있는 방법이 있습니까?

나는 레일 3.2.9에 있습니다. 당신은 before_save 콜백을 사용하고, 아무 것도 모델의

을 변경되지 않은 경우를 실패 할 수

답변

0

Theres는이 일을 아마 더 좋은 방법,하지만 여기

간다,

before_save :check_for_changes 

def check_for_changes 
    if !self.changed? 
    return false 
    end 
end 

및 저장 프로세스가 발생하지 않습니다.

그러나이 점을 보지 못했지만, 물건을 저장 한 후에 일부 작업을하지 않으면 변경된 사항을 호출 할 수 있습니까? 메소드를 개별 속성에 추가하여 더욱 정확하게 만들 수 있습니다.

관련 문제