首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PaperClip更新个人资料图片(Rails 4)

使用PaperClip更新个人资料图片(Rails 4)
EN

Stack Overflow用户
提问于 2014-08-13 03:42:19
回答 2查看 811关注 0票数 0

我有一些问题,例如,更新当前用户登录的个人资料图片。

代码语言:javascript
复制
#form for the picture
    <%= form_tag '/update_profile_pic/'+user.id.to_s, method: :put, html: { multipart: true } do %>
        <%= label_tag :avatar %>
        <%= file_field_tag :avatar %>
        <%= submit_tag("Update", class: "btn btn-primary") %>
    <% end %>

#users_controller.rb
class UsersController < ApplicationController
    def update_profile_pic
        @user = User.find(params[:id])
        @user.avatar = params[:avatar]
        if @user.save
            flash[:success] = "Profile picture updated."
        else
            flash[:danger] = "Failed to update profile picture."
        end
    end
end

#user.rb
class User < ActiveRecord::Base
    attr_accessbile :avatar

    has_attached_file :avatar, styles: { tiny: "30x30>", thumb: "50x50>", profile: "100x100>" }, 
    default_url: "/assets/images/users/:style/default.png",
    url: "/assets/images/users/:id/:style/:basename.:extension",
    path: ":rails_root/public/assets/images/users/:id/:style/:basename.:extension"

    validates_attachment_size :avatar, less_than: 5.megabytes
    validates_attachment_content_type :avatar, content_type: ["image/jpeg", "image/png"]
end

在提交表单和所选图片后,我得到了一个异常:Paperclip::AdapterRegistry::NoHandlerError - No handler found for "me.jpg"。在注册时添加个人资料图片(这是创建用户)工作,但更改作为登录用户的图片不起作用。看起来@user.avatar = params[:avatar]似乎做了件有点愚蠢的事情。

EN

回答 2

Stack Overflow用户

发布于 2014-08-13 04:08:07

尝试使用:

@user.update_attributes(参数)

票数 0
EN

Stack Overflow用户

发布于 2014-08-13 21:44:00

我只注意到两件事:

  1. 来自注册和更新头像的呈现表单的头部在其多部分参数方面是不同的。从注册开始,它是enctype=multipart/form-date,而另一个是item #1的html: { multipart: true }.
  2. Because,我注意到用于将表单作为多部分的参数分别对于form_forform_tag是不同的。

因此,我将html: { multipart: true }改为multipart: true

代码语言:javascript
复制
#form for the picture
<%= form_tag '/update_profile_pic/'+user.id.to_s, method: :put, multipart: true do %>
    <%= label_tag :avatar %>
    <%= file_field_tag :avatar %>
    <%= submit_tag("Update", class: "btn btn-primary") %>
<% end %>

不管从我提供的内容和回答我问题的人那里更新化身的参数是什么,它们都有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25272772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档