제목과 마찬가지로 방금 만든 레코드의 ID를 얻으려고 시도하지만 콘솔에서 가져 오려고했지만 ID는 0입니다.레일 3 after_create에서 현재 레코드 ID를 얻는 방법
여기에 내가 after_create
<Unit id: nil, uuid: "9f11be13-8d07-4471-a3bb-f87943966bbd", organization_id: 33, property_id: 430, door_number: "3", created_at: "2014-12-05 13:27:57", updated_at: "2014-12-05 13:27:57", deleted_at: nil, size: "5 1/2", door_number_int: 3, leases_count: 0, tasks_count: 0, notes: nil, state_id: 68, state_tasks_count: 2, current_lease_id: nil, next_lease_id: nil, state_tasks_serie: 1, state_tasks_serie_count: 2, price_asked: #<BigDecimal:7fc79162cb80,'0.123E3',9(18)>, availability_date: nil, comments_count: 0>
의 시작 부분에 콘솔에서 자신의받은 인쇄 레코드 ID에 대한 액세스 권한을 얻을 수있는 방법이 있나요입니까? 레코드가 한 번만 생성되기 때문에 무한 루프가 발생하지 않습니다 :
이
내가 그것은 아주 예쁜 아니지만이 @MarekLipka에 대답하기 위해일을 지금까지
after_create
self.save
end
before_save
if self.id.present?
# do stuff
end
end
을 시도 것입니다 .
는 또한 사용하려 :after_create
reload
# do stuff if self.id
end
을하지만 작동하지 않습니다.
@PauloFidalgo처럼, after_save 메소드를 제외하고는 id를 얻을 수 없습니다. 그것은 나에게 이상한 일이지만 after_save (after_create의 저장에 의해 트리거 됨)에서 두 번째 before_save로 가져올 수 있습니다.
여기 내 문제는 실제 레코드에서 일부 값을 수정해야한다는 것입니다. 그게 내가 before_save에서하고있는 이유입니다. 그러나 다른 요소에 대한 새 레코드를 연결하려면 after_create에서 ID를 가져 와서 내 물건을 사용하고 싶었습니다. 게다가 레코드를 after_save에 저장하면 무한 루프가 발생합니다. after_create가 레코드를 저장하지 않은 경우 after_create에서 호출 한 저장하기 전에 내 ID를 얻는 방법은 무엇입니까? – Incognito
@Incognito 따라서 레코드를 만들거나 편집 할 때 연관을 변경하고 싶습니까? –
실제로 제가 원했던 것은 단위에 연결된 일부 레코드를 복제하는 것이 었습니다. 요점은 템플릿 단위를 만들었고 사용자가 직접 만든 것이기 때문에 기본 연관을 복사한다는 것입니다. 그래서 그것을 시도한 것입니다. 하지만 self.tasks를하는 중 << Task.new (taks_to_copy.attribute)는 주 레코드가 저장 될 때 연결을 생성하지 않는 것처럼 보입니다. – Incognito