4

私は搬送波を使用する2つの画像を持つレシピと呼ばれるモデルを持っているので、このモデルでは搬送波をセットアップするためにこれを持っています

mount_uploader :author_photo, AuthorUploader
mount_uploader :photo, PhotoUploader

また、親指、小、中、大など、複数のバージョンを画像に追加しました

問題は。私は2つの画像を持っていると言います

Chocolate_Cake.jpg as the photo
My_Photo.jpg as author_photo

コンソールに移動してレシピをロードし、recipe.to_json を読み込むと、両方の画像が Carrierwave から返されますが、どちらも作成者の写真ではなく、レシピの写真が表示されます。

     "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を思いつきます

4

1 に答える 1

5

いくつかの調査と友人の助けを借りて、レシピ モデルの as_json メソッドをオーバーライドして、得られた応答を修正できることがわかりました。

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

このソリューションは機能しました。

于 2012-05-16T04:38:20.047 に答える