我有同样的问题,但我解决了添加新列的问题。我认为您需要添加另一列,例如avatar_image_url
除了avatar
用作mount_uploader :avatar, AvatarUploader
.
控制器是这样的:
class ProfilesController < ApplicationController
before_action :setup_context
def edit
@uploader = @profile.avatar
@uploader.success_action_status = '201'
end
def update
if @profile.update_attributes(profile_params)
redirect_to home_path
else
render :edit
end
end
private
def setup_context
@profile = current_user
end
def profile_params
params.require(:user).permit(:name, :avatar_image_url)
end
end
当您发布以下参数时,您可以保存avatar_image_url
.
Parameters: {"utf8"=>"✓", "user"=>{"avatar_image_url"=>"https://my-development.s3.amazonaws.com/uploads/220f5378-1e0f-4823-9527-3d1170089a49/foo.gif", "name"=>"Schneems"}}
您可以像这样参考图像。
<%= image_tag @user.avatar_image_url %>
你也可以看看这个。
在 Rails 中直接到 S3 图像上传 | Heroku 开发中心