종이 클립을 사용하여 광산 모델에 파일을 첨부하고 있습니다. 제가하고 싶은 것은 모델이 저장되고 디스크에 파일이 작성된 후에 파일에 대한 모델의 다른 속성 (CRC)을 업데이트해야한다는 것입니다. paperclip은 .save가 호출 될 때까지 디스크에 파일을 쓰지 않기 때문에, 처음 생각한 것은 after_save 콜백을 사용하는 것이 었습니다. 이렇게하면 "SystemStackError (스택 수준이 너무 높음) :"오류가 발생합니다. 그런 다음 조금 더 나은 것으로 보이는 after_commit 콜백을 시도했습니다. 예를 들어, 단순히 내 crc를 할당하면 :저장 후 레코드를 업데이트 할 시점은 언제입니까?
self.crc = "TEST"
self.save
이것은 작동합니다. 그러나, 나는이와, 내 진짜 임무를 수행하려고 할 경우
self.crc = "0x" + IO.read(self.patchfile.path, 4, 0x20).unpack("H8").join
self.save
에 WEBrick과 함께 중단 : 그래서
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(+0x180048) [0x290048]
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(rb_yield+0x56) [0x294c46]
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
Aborted
내가이 잘못을하고있는 중이 야 생각하고 ...
나는 그것이 WEBrick을 죽이는 동안 실제로 작동한다는 것을 언급해야한다. 다시 시작하면 CRC 특성이 올바르게 설정됩니다. 또한 위에 나열된 오류에는 더 많은 것이 있으며 꼬리표를 게시했습니다. –