用户在模型中有2个图像附件。但是,在上传单个图像(即化身)之后,它将替换两者

时间:2013-09-30 13:30:07

标签: ruby-on-rails image heroku amazon-s3 paperclip

所以,在我的rails应用程序中,我已经让用户能够将自己的头像图片和背景图片添加到他们的个人资料中。

问题是,每当我上传头像图像时,它都会显示头像和个人资料的背景。当我上传背景图片时,它会显示背景和头像图片,替换我设置的原始头像图片。

在我的本地主机上,这很好用。用户的个人资料可以显示我设置的头像图像和背景图像。但是,这个问题似乎只发生在heroku上。

有关如何解决这个问题的想法吗?

这是一个rails应用程序,我正在使用paperclip和aws-sdk。

以下是我的一些代码#show ...

背景:

 <div class="bg-dark lter nav-user pos-rlt" style="<%= show_user_bg %>"> 

头像:

<a href="#" class="thumb-sm avatar animated rollIn" style="margin-left:22%;" data-         toggle="dropdown">
<%= image_tag @user.avatar.url(:medium) %>
<span class="caret caret-white"></span>
</a>

后台的css包含在users_helper ...

module UsersHelper
def show_user_bg
"background:transparent url(#{@user.background.url}) no-repeat center center fixed; 
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;"
end
end

这是来自用户的模型......

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :avatar,         :tagline, :bio, :phone, :website, :city, :background
# attr_accessible :title, :body

validates_attachment :avatar, 
                    content_type: { content_type: ['image/jpeg',   'image/jpg', 'image/png', 'image/gif'] },
                    size: { less_than: 5.megabytes }
validates_attachment :background, 
          content_type: { content_type: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'] },
          size: { less_than: 5.megabytes }            

has_many :projects
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" },  :default_url => "/images/:style/missing.png"
has_attached_file :background, :styles => { :medium => "300x300>", :thumb => "100x100>" },  :default_url => "/images/:style/missing.png"
end

以下是表单中的代码上传文件......

<%= f.input :avatar, label: "Upload Avatar", class: "btn btn-sm btn-info m-b-sm file-input" %>

<%= f.input :background, label: "Upload Background", class: "btn btn-sm btn-info m-b-sm file-input" %>

我没有在日志中收到错误。所以,我不是我做错了。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我明白了。

这很简单。

之前,图像尺寸均为:中等。因此,由于某种原因导致用户头像图像也在配置文件中显示为背景图像,反之亦然。

当我将背景图片大小更改为:large并更改尺寸时,它会在配置文件中正确显示两个图像。

has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
has_attached_file :background, :styles => { :large => "400x600>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"