2012-05-15 1 views
4

나는이 모델에서 나는 또한 내 이미지에 여러 버전을 추가 한여러 Carrierwave의 mount_uploader

mount_uploader :author_photo, AuthorUploader 
mount_uploader :photo, PhotoUploader 

설정 carrierwave이있다, 그래서 carrierwave을 사용하여이 개 이미지를 가진 모델이라는 레시피를 엄지, 소형, 중형, 대형 등

문제가 있습니다. 난 다시 carrierwave에서 모두 내 이미지를 얻을, 내가 콘솔에 가서 내 조리법을로드하고 recipe.to_json 할 때 2 개 이미지

Chocolate_Cake.jpg as the photo 
My_Photo.jpg as author_photo 

가 있다고하지만 그들은 모두 제조법이 아닌 저자의 사진을 보여주고있다 사진.

 "recipe": [ 
    { 
     "author_photo": { 
      "url": "/uploads/recipe/photo/8/Chocolate_Cake.jpg", 
      "thumb": { 
       "url": "/uploads/recipe/photo/8/thumb_Chocolate_Cake.jpg" 
      }, 
      "small": { 
       "url": "/uploads/recipe/photo/8/small_Chocolate_Cake.jpg" 
      }, 
      "medium": { 
       "url": "/uploads/recipe/photo/8/medium_Chocolate_Cake.jpg" 
      }, 
      "large": { 
       "url": "/uploads/recipe/photo/8/large_Chocolate_Cake.jpg" 
      } 
     }, 
     "id": 8, 
     "photo": { 
      "url": "/uploads/recipe/photo/8/Chocolate_Cake.jpg", 
      "thumb": { 
       "url": "/uploads/recipe/photo/8/thumb_Chocolate_Cake.jpg" 
      }, 
      "small": { 
       "url": "/uploads/recipe/photo/8/small_Chocolate_Cake.jpg" 
      }, 
      "medium": { 
       "url": "/uploads/recipe/photo/8/medium_Chocolate_Cake.jpg" 
      }, 
      "large": { 
       "url": "/uploads/recipe/photo/8/large_Chocolate_Cake.jpg" 
      } 
     }, 

그래서 내 json 응답이 내 업 로더를 올바르게 표시하지 않습니다. 내가 콘솔이를 입력했다면

,

recipe.photo 
recipe.author_photo 

그들은 서로 다른 이미지 URL

일부 연구와 친구의 도움 후

답변

5

을 마련 난 내가 as_json 메소드를 오버라이드 (override) 할 수 있음을 발견 내가 얻고있는 응답을 수정하기위한 레서피 모델.

def as_json(options = {}) 
    super.merge('photo' => photo.as_json[:photo], 'author_photo' => author_photo.as_json[:author_photo]) 
    end 

이 솔루션은 효과가 있습니다.

+0

이것은 나에게도 도움이되었지만이 문제의 원인을 발견했습니다. CarrierWave의 버그 또는 사용과 같은 느낌. –

+0

안녕하세요 제리, 확실하지 않지만 나에게 그것이 당신이 설정 한 마지막 업 로더를 사용하는 것처럼 보입니다. 가능한 버그/사용법처럼 들립니다. – Robert