そのため、私の Rails アプリでは、ユーザーが自分のアバター画像と背景画像をプロフィールに追加できるようにしました。
問題は、アバター画像をアップロードするたびに、アバターとプロフィールの背景の両方に表示されることです。背景画像をアップロードすると、背景とアバター画像の両方に表示され、設定した元のアバター画像が置き換えられます。
私のローカルホストでは、これは正常に機能します。ユーザーのプロフィールには、設定したアバター画像と背景画像の両方を表示できます。ただし、この問題は heroku でのみ発生するようです。
これを修正する方法について何か考えはありますか?
Rails アプリで、ペーパークリップと 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" %>
ログにエラーが記録されていません。だから、私は私が間違っていることではありません。
よろしくお願いいたします。