2016-11-22 10 views
0

カラムを作成する前にイメージカラム(base64イメージ)を設定しようとしましたが、動作しないようです。mount_base64_uploaderカラムのモデル値を設定する方法は?

は、私は私のイメージbase64でアップローダーとしてこれを使用 https://github.com/lebedev-yury/carrierwave-base64

これは

user = User.new(user_params) 
    if user.save 
    user.remember_auth_token 
    render json: user, status: 201 ,serializer: UserSerializer 
    else 
    render json: { errors: user.errors }, status: 422 
    end 

これは私がネット作業応答

から得たものであるので、私のモデル

mount_base64_uploader :profile_image, PictureUploader 
before_create :default_profile_image 

private 

    def default_profile_image 
    self.profile_image = Base64.encode64(open("http://www.novotelbangkokploenchit.com/wp-content/uploads/2015/10/top-10-things-to-do-in-Bangkok.jpg").read).gsub("\n", '') 
    end 

この私のコントローラであり、

"user":{ 
     "id":9, 
     "email":"[email protected]", 
     "profile_image":{ 
     "profile_image":{ 
      "url":null 
     } 
     } 
    } 

どうすればこの仕事をすることができますか?

ありがとうございます!

答えて

0

移行でデフォルト値を使用できると思います。 t.string:url、デフォルト: "myimage.jpg"

+0

私はすべての自分のイメージを格納するためにcdnを使うつもりなので、私はそれを使うことができません。将来的にファイル名を変更したい場合は問題になります。 – user3403614

+0

フォームに「hidden_​​field」を設定できますか? <%= f.hidden_​​field:url、:value => "myimage.jpg"%>または、ユーザー= User.new(user_params)の後にコントローラで:user.url = "myimage.jpg"。コントローラ内の – l0tusFl0wer

+0

:if user.url!= "" – l0tusFl0wer

関連する問題