을 저장 모델에 업데이트되지 SQL 로그는 같은 뒤에 INSERT
가있을 것입니다 :counter_cache 후 나는 MySQL은 나를 위해 회계 장부의 일부를 할 수 있도록하기 위해 <code>counter_cache</code>을 사용하고
UPDATE `containers` SET `items_count` = COALESCE(`items_count`, 0) + 1
WHERE `containers`.`id` = 57
인 내가 전 그것을하기 위하여 pected. 그러나 container[:items_count]
은 오래되었습니다.
... 업데이트 된 값을 가져 오지 못하면 container.reload
입니다. 내 마음에 일종의 패배의 일환 : 사용자 정의 내장 된에 찬성하여 counter_cache를 사용하는 목적의 일부를 패배 시키십시오. 특히 reload
이 실제로는 items_count
속성에 액세스하려고하기 때문에 원하지 않을 수 있습니다. (내 모델은 꽤 코드 무거운 때문에 도메인 로직의 성격, 그래서 때로는 하나의 컨트롤러 호출로 여러 가지를 저장하고 생성해야합니다.)
나는 콜백 자신을 땜질 할 수 이해하지만이 날 것으로 보인다 간단한 기능에 대한 기본적인 기대. 다시 말하지만, 코드가 제대로 작동하도록 추가 코드를 작성해야한다면 맞춤 카운터를 구현하는 것이 더 쉬울 수도 있습니다.
내가 뭘하고/틀릴 것이라고 생각하니?
그거야. 나는 그것이 일방적으로 작동하고 다른 것은 작동하지 않는다는 것을 일관성있게 찾는다. – sehnsucht
제게 이것은 작동하지 않습니다! 재로드 카운터가 업데이트 된 후에 만 나는 다양한 스타일'create','create!','build.save! '를 시도했습니다. – pablo