如何实现“更改您的个人资料图片”功能(服务器端)

时间:2015-05-25 13:46:35

标签: ruby iframe request server backend

我试图在我的项目上实现一项功能,以便用户可以更改他们的个人资料图片。我目前处于前端所有东西都工作的位置(当你将鼠标悬停在显示摄像头的图像上时,当你点击它时,你可以浏览你的计算机来选择一个图像文件)然而,它不起作用那一点。 我不确定如何处理服务器请求。

FYI 我使用routes.rb和controller .rb文件来处理后端。 也, 我应该使用iframe,而不是html中的form tag吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您不需要iFrame。在这种情况下,简单的form-for ruby​​助手将有所帮助。我建议您使用像paperclip这样的文件上传宝石。

为您的记录创建模型:

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
end

我假设模型名称是用户

使用生成器创建新迁移:

rails generate paperclip user avatar

更新您的html表单,如下所示:

<%= form_for @user, :url => users_path, :html => { :multipart => true } do    |form| %>
  <%= form.file_field :avatar %>
<% end %>

然后在控制器中执行以下更改:

def create
  @user = User.create( user_params )
end

private

def user_params
   params.require(:user).permit(:avatar)
end

要在页面上显示图像anyware,请使用以下帮助程序:

<%= image_tag @user.avatar.url %>

这是在rails中处理服务器端图像上传的最简单方法。您可以在paperclip github页面上阅读更多内容。如果您不想使用 gem ,那么有一个ruby类FileUtils可以帮助您实现相同的目标。

相关问题