Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Carrier未在数据库上保存文件_Jquery_Ruby On Rails_Upload_Carrierwave - Fatal编程技术网

Jquery Carrier未在数据库上保存文件

Jquery Carrier未在数据库上保存文件,jquery,ruby-on-rails,upload,carrierwave,Jquery,Ruby On Rails,Upload,Carrierwave,我一直试图上传一个头像到我的项目模型,但没有成功 我的看法是: .inbox-body.light-panel %span.blue-light-title Look and feel for your projects #audit_trail_container = form_tag set_project_logo_project_path(project), :method=>:POST do .form-control-group

我一直试图上传一个头像到我的项目模型,但没有成功

我的看法是:

.inbox-body.light-panel
  %span.blue-light-title Look and feel for your projects
  #audit_trail_container
    = form_tag set_project_logo_project_path(project), :method=>:POST do
          .form-control-group
            .separator-div
              .fileuploadadvanced.fileuploadadvanced-new{"data-provides" => "fileuploadadvanced"}
                %span.btn.btn-white.btn-file
                  %span.fileuploadadvanced-new
                    %i.fa.fa-paper-clip
                    Select file
                  %span.fileuploadadvanced-exists
                    %i.fa.fa-undo
                    Change
                  =file_field_tag :avatar, :class => "upload"
                %span.fileuploadadvanced-preview
                %a.close.fileuploadadvanced-exists{"data-dismiss" => "fileuploadadvanced", href: "#"}
      = link_to "Save", "#", :class=> 'btn submit-btn btn-cl-info set_project_logo', :data=> {:project=> project.id}
这将转到jquery:

set_project_logo_action = function() {
    return $(".set_project_logo").on('click', function(event) {
        var checked, project_id, selected, type, uploaded_image;
        project_id = $(this).data('project');
            selected = $("#avatar").val();
            return $.post('/projects/' + project_id + "/set_project_logo", {
                selected: selected,
                type: "file"
            }, function(data) {
                if (data.success) {
                    return document.location.reload(true);
                } else {
                    return alert(data.error);
                }
            });
        } else {
            alert("Select an image to become the logo of the project");
            return event.preventDefault;
        }
    });
};
在项目_控制器上使用以下方法:

def set_project_logo
    set_project
    @project = @project.set_project_logo(params)
    if @project.save
      render :json => {:success => true}
    else
      render :json => {:error => "There was a problem setting the logo."}
    end
  end
最后,在模型上使用此方法:

def set_project_logo(params)
    if params[:selected].present? and params[:type].present?
        self.avatar = params[:selected]
    end
   self
end
在我的模型上,我还有一行:
mount\u uploader:avatar,ProjectAvatarUploader

self.avatar=params[:selected]
已执行,但
params[:selected]
为“c:\fakepath..”。所以我猜我遗漏了一些东西,因为在s3上db上也没有保存任何东西


有什么帮助吗?

试试self.avatar=params[:selected][:datafile]params[:selected]。读了吗?如果我打印params[:selected],我会得到以下信息:{“0”=>{“name”=>“utf8”,“value”=>“✓"}, "1“=>{”name“=>”authenticity_token“,”value“=>”1Y9EGZMTHTVKQ6AUNVEZDONOSKAZ0XO3GCRK4XF4C=“}}}谢谢!它正在工作