(GoRails) 使用ActiveStorage给user添加上传头像功能。
对activestorage的简单使用:
头像库:uifaces.co。 可以使用大量设置好的头像图片。
1.安装avatar
rails active_storage:install
2.user model建立has_one_attached关联。
3.view上面添加代码:可以查看,修改头像
- 用variant方法设置图像格式,需要安装gem 'mini_magick', (需要brew install imagemagick)
- 提供了gem 'gravatar_image_tag', 可以使用helper方法
4.代码太多,使用一个helper方法。
module ApplicationHelper
#...上略...
def user_avatar(user, size=40)
if user.avatar.attached?
user.avatar.variant(resize: "#{size}x#{size}!")
else
gravatar_image_url(user.email, size: size)
end
end
end
这样_navbar.html.erb中也可以使用这个方法了
5.因为用到了device,所有在controller配置参数白名单:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception before_action :configure_permitted_parameters, if: :devise_controller?
before_action :masquerade_user! protected def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
+ devise_parameter_sanitizer.permit(:account_update, keys: [:name, :avatar])
end
end
注意:⚠️
Devise error: undefined method `current_sign_in_ip'
首先看devise是否是最新版本gemfile,和gemfile.lock
然后,检查migration中是否加上了这个属性current_sign_in_ip。如果没有的话
- 第一个办法,user model中去掉devise_for :trackable
- 第二个办法,加上这个属性,然后rails db:migrate
rails g migration AddTrackingToUsers class AddTrackingToUsers
def change
add_column :users, :current_sign_in_ip, :string
add_column :users, :last_sign_in_ip, :string
end
end rails db:migrate
(GoRails) 使用ActiveStorage给user添加上传头像功能。的更多相关文章
- C# fckeditor添加上传附件功能
最近在维护系统时,要把fckediotr加上上传附件功能,好久没有用fckeditor了,现在都已经改名字,不叫这个了. 修改统计器下面的fckconfig.js,方法如下: 1.把FCKConfig ...
- 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)
现在很多下载客户端程序都需要设定自己头像的功能,而设定头像一般有两种方式:使用摄像头自拍头像,或者选择一个图片的某部分区域作为自己的头像. 一.相关技术 若要实现上述的自拍头像和上传头像的功能,会碰到 ...
- php实现手机拍照上传头像功能
现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,这个就不是post传递 也不是get函数传递, 这个另外一种数据格式传递,使用的是$GLOBALS ...
- php实现视频拍照上传头像功能实例代码
如果要在php中实现视频拍照我们需要借助于flash插件了,由flash拍出的确照片我们再通过php的$GLOBALS ['HTTP_RAW_POST_DATA']接受数据,然后保存成图片就可以了,下 ...
- biweb后台添加上传下载功能
1.数据库对应表添加字段 file varchar(100) 2.对应的后台 模块名/admin/addinfo.php里添加如下代码: //文件上传 if ((($_FILES[&quo ...
- Flask使用bootstrap为HttpServer添加上传文件功能
关于模态框 使用bootstrap实现点击按钮弹出窗口,简直不要太简单.我们只需要将写好的窗口内容隐藏,然后调用bootstrap的框架即可,简单几行就能完成相关功能实现.... 前提条件是,我们需要 ...
- layui 魔改:富文本编辑器添加上传视频功能
甲方又整新需求了:富文本编辑器需要可以传视频. layui本身的富文本编辑器没有传视频的功能,所以,又到了咱们魔改的时候了. 友情提醒,富文本编辑器 layedit 只有layui的V1版有,V2版没 ...
- 使用django表单,使网页添加上传文件,并分析文件。
开发环境是: apache + python + django+ eclipse(开发环境) 欲达到目的: 在网页上,添加上传文件控件.然后读取csv文件,并分析csv文件. 操作步骤: django ...
- ASP.NET访问网络映射盘&实现文件上传读取功能
最近在改Web的时候,遇到一个问题,要跨机器访问共享文件夹,以实现文件正常上传下载功能. 要实现该功能,可以采用HTTP的方式,也可以使用网络映射磁盘的方式,今天主要给大家分享一下使用网络映射磁盘的方 ...
随机推荐
- iOS Xcode Error 集锦
一),'libxml/tree.h' file not found Solution: 1. 导入libxml2.dylib 包 2.设置Header Search Paths 为 /usr/inc ...
- 本地git远程github
操作环境: windows系统 本地已安装git 步骤 1.右键进入git bash 2.进入本地仓库,如果有,则跳到步骤3.如果没有,则找到要作为仓库的文件夹,例如e://git//reposito ...
- Linux 双向 SSH 免密登录
原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...
- Win10子系统Ubuntu安装llvm+clang
https://apt.llvm.org/ 首先 然后 再然后修改/etc/apt/sources.list,添加下面的东西 然后 参考: https://blog.kowalczyk.info/ar ...
- vba编程基础1
在主要的编程语言中, 结构体是用大括号来表示 代码段的 范围 界定的. 但是在一些比较"老的"语言中,由于历史原因, 还是使用的 是: 关键字来进行界定代码 的 结构段, 如vba ...
- SpringBoot 整合携程Apollo配置管理中心
携程官网对apollo的使用讲解了很多种方式的使用,但是感觉一些细节还是没讲全,特别是eureka配置中心地址的配置 这里对springboot整合apollo说一下 >SpringBoot启动 ...
- C# 各种控件实现可拖动和调整大小
http://www.360doc.com/content/18/0516/12/55659281_754382494.shtml using System; using System.Collect ...
- [转载]哪个版本的gcc才支持c11
转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 Fi ...
- Windows has encountered a critical problem and will restart automatically in one minute. Please save your work now
Windows has encountered a critical problem and will restart automatically in one minute. Please save ...
- 踩坑记录:spring boot的POST请求数据注入不了的问题
概述: 今天在使用spring boot框架的时候,踩了一个坑,是关于control层request body依赖注入的问题的,内容如下: 进过: 由于目前公司采用的系统架构,要求把springboo ...