如何实现 "change your profile picture" 功能(服务器端)
How to implement "change your profile picture" feature (server side)
我正在尝试在我的项目中实现一项功能,以便用户可以更改他们的个人资料图片。我目前正处于前端一切正常的地步(当你将鼠标悬停在它显示相机的图像上时,当你点击它时,你可以通过你的计算机浏览到 select 一个图像文件)但是,在那之后它不起作用。
我不太确定如何处理服务器请求。
仅供参考
我正在使用 routes.rb 和控制器 .rb 文件来处理后端。
还,
我应该使用 iframe,而不是 html 中的表单标签吗?
谢谢!
您不需要 iFrame。在这种情况下,简单的 form-for
ruby 助手会有所帮助。我建议您使用 gem 之类的文件上传 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
要在页面上显示图像,请使用以下帮助程序:
<%= image_tag @user.avatar.url %>
这是 rails 在服务器端处理图片上传的最简单方法。您可以在回形针 github page.If 上阅读更多内容您不想使用 gem 然后有一个 ruby class FileUtils
可以帮助您实现相同的目标。
我正在尝试在我的项目中实现一项功能,以便用户可以更改他们的个人资料图片。我目前正处于前端一切正常的地步(当你将鼠标悬停在它显示相机的图像上时,当你点击它时,你可以通过你的计算机浏览到 select 一个图像文件)但是,在那之后它不起作用。 我不太确定如何处理服务器请求。
仅供参考 我正在使用 routes.rb 和控制器 .rb 文件来处理后端。 还, 我应该使用 iframe,而不是 html 中的表单标签吗?
谢谢!
您不需要 iFrame。在这种情况下,简单的 form-for
ruby 助手会有所帮助。我建议您使用 gem 之类的文件上传 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
要在页面上显示图像,请使用以下帮助程序:
<%= image_tag @user.avatar.url %>
这是 rails 在服务器端处理图片上传的最简单方法。您可以在回形针 github page.If 上阅读更多内容您不想使用 gem 然后有一个 ruby class FileUtils
可以帮助您实现相同的目标。