私はモデルを持っています。ここで私はウェブカメラで写真を撮って保存します。私はcarrierwaveで画像をアップロードすると、画像がAJAXによって送信されるcarrrierwave-data-uri宝石で画像を生成Rails 4:許容されないパラメータ
私PicturesController.rbの機能は次のとおりです。
def upload_image
photo = params[:picture][:photo]
@picture = Picture.new(picture_params)
@picture.user_id = current_user.id
@picture.photo = photo
@picture.save
end
private
def set_picture
@picture = Picture.find(params[:id])
end
def picture_params
params.require(:picture).permit(:photo, :comment, :user_id)
end
end
マイアヤックス
function save_photo() {
Webcam.snap(function(data_uri) {
$.ajax({
type: 'POST',
url: '/pictures/upload',
async: true,
data: { picture: {photo: data_uri} }
})
.done(function() {
console.log(photo);
});
Webcam.reset();
});
}
画像を送信すると、画像はデータベースに登録されますが、画像には登録されません。
許可されていないパラメータ::画像
しかし、私は、パラメータ追加する場合:私の強いパラメータに画像を、私は完了500内部サーバーエラーを取得
データのURI Iは、コンソールエラーを取得します私のコンソールには印刷されていますが、私はイメージを入れません変数
ありがとうございました!
'data_uri = paramsは[::画像]'
また、このようなあなたのコントローラの方法で変更を行います。 'params [:picture] [:image]'を試してみてください。また、許容されないパラメータエラーは、イメージが強いパラメータにないために発生します。 **画像**モデルの**画像属性**を持っているかどうかわかりません。それは '内部サーバーエラー'の理由でなければなりません。 – sajinmp
ありがとうございますが、同じエラーです。データ:{picture:{photo:data_uri}}写真の値が空になる["photo"、nil] –