接触rails已经有两个月了,现在情不自禁把它作为开发网站,做后台api的首选。一直没有记录学习它的过程,突然想随笔记录下现在遇到的点点滴滴。
关于上传文件到服务器,我们有几种选择,主流是carrierwave或者paperclip。本文简单介绍下carrierwave。
1.在你的rails项目的Gemfile中加入
gem 'carrierwave'
2.安装这个gem
bundle install
3.如果你需要在现有的model上添加一个文档的属性(比如给user添加一个picture)
rails g migration add_picture_to_users picture:string
4.迁移数据库
rake db:migrate
5.将这个属性picture声明为上传的文件(这个必须在添加属性,数据库迁移后进行)
rails generate uploader Picture
会自动生成app/uploaders/picture_uploader.rb
6.在model(这里是user)加上
mount_uploader :picture, PictureUploader
7.控制器相应动作中添加
u.picture = params[:user][:picture] --B/S架构中
u.picture = params[:picture] --C/S架构中
8.视图文件中添加(如果是B/S)
<%=f.file_field :picture %>
这样就完成了图片(文档)的上传,比java简单多了有木有!默认路径保存在项目下public文件夹。我们可以通过修改picture_uploader.rb改变这些默认配置。
具体可参考:https://github.com/carrierwaveuploader/carrierwave
相关推荐
Api-carrierwave-base64.zip,将编码为Base64字符串的文件直接上载到CarrierWaveCarrierWave::Base64,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取...
carrierwave_direct, 在后台直接上传到 S3,处理你的上传 CarrierWaveDirect 虽然在进程中处理和保存文件是很好的方法,但是 CarrierWave插件是一种很好的上传文件的方法,但。 更好的方法是直接上传文件,然后在 ...
阿里云OSS的CarrierWave 该gem向添加了对支持 注意:此Gem是一个CarrierWave的组件,你需要配合CarrierWave一起使用,如果你需要直接用Aliyun OSS,可以用这个Gem。 注意:此gem是的扩展,因为它支持使用Alicloud...
阿里云_OSS_Ruby_上传组件,基于_Carrierwave_carrierwave-aliyun
gem 'carrierwave-i18n' # If you need to use locales other than English 然后执行: $ bundle 或自己安装为: $ gem install carrierwave-qiniu -v 1.2.2 用法 您需要在config / initializers / carrierwave.rb...
carrierwave-aliyun, 阿里云 OSS Ruby 上传组件,基于 Carrierwave
CarrierWave ImageOptimizer 该gem可让您使用 gem通过jpegoptim或optipng来简单地优化CarrierWave图像。 经过2.2.x,2.3.x和Ruby头测试安装此gem使用以下实用程序来优化图像: jpegoptim,可以从官方存储库中安装可...
Carrierwave AWS存储 使用官方支持的AWS-SDK库进行S3存储,而不要依赖雾。 有几件事情要做: 功能齐全,它支持的API比Fog更多占地面积小得多更少的依赖清晰的文件这是一个简单的比较表[2013/07/17] 图书馆磁盘空间...
注意:此Gem是一个CarrierWave的组件,你需要配合CarrierWave一起使用。 配置 您需要配置,才能在config / initializers / carrierwave.rb中使用它 CarrierWave . configure do | config | config . storage = :...
CarrierWave :: DataUri Carrierwave插件,可从数据uri创建图像 :warning: 在升级到新的主要版本之前,请阅读。安装将此行添加到您的应用程序的Gemfile中: gem 'carrierwave-data-uri' 然后执行: $ bundle或将其...
CarrierWave::NoBrainer 这是 CarrierWave gem 的适配器。 请注意:此版本针对正在开发中的 CarrierWave 的 master 分支。 期待错误! (但也有一些不错的功能,比如文件数组)。 安装 将此行添加到应用程序的 ...
Mongoid的CarrierWave 该gem在CarrierWave中增加了对Mongoid和MongoDB的GridFS的该功能曾经是CarrierWave的一部分,但此后已被提取到该gem中。安装安装最新版本: gem install carrierwave-mongoid在您的代码中要求...
CarrierWave FTP存储 该gem增加了对将FTP上传到支持安装安装最新版本: gem install carrierwave-ftp在您的代码中要求它: require 'carrierwave/storage/ftp'或者,在Rails中,您可以将其添加到您的Gemfile中: gem...
这个 gem 为 CarrierWave 添加了对 Google Drive 的存储支持 安装 将此行添加到应用程序的 Gemfile 中: gem 'carrierwave-google_drive' 然后执行: $ bundle 或者自己安装: $ gem install carrierwave-...
Carrierwave的缩略图插件。 它可以混入您的上传器设置中,并轻松为您上传的视频提供缩略图。 该软件目前是Alpha版,因此欢迎任何形式的OpenSource合作。 演示版 入门 先决条件 ffmpegthumbnailer二进制文件应位于...
Rails CarrierWave WebP图像编码示例 这是一个简单的Rails应用程序,显示了如何使用CarrierWave和WebP-ffi(用Ruby编写的libwebp包装器)将图像转换为WebP格式。 笔记 如果需要在不使用CarrierWave版本的情况下转换...
gem 'carrierwave-truevault' , github : 'ianyamey/carrierwave-truevault' 然后执行: $ bundle 用法 从创建新的保管库 在您的config/initializers/carrierwave.rb文件中添加一个配置块。 CarrierWave . ...
这为CarrierWave增加了对超快速且资源高效的VIPS库的支持。安装gem install carrierwave-vips如果您需要VIPS 7支持,请安装此gem的1.0.x版本。 您还将需要VIPS 8的ruby-vips。有关如何安装的说明,请参见存储库: :...
标题 "nocms-admin-carrierwave" 提到的是一个专门为 nocms-carrierwave gem 设计的扩展或增强模块,它的核心功能在于提供了定制化的后台管理功能。这个 gem 的目的是为了优化和简化 nocms-carrierwave 在处理媒体...
真棒打印 CarrierWave 格式器 这个 gem 使 Awesome Print 仅打印已安装的上传器的序列化数据,而不是在屏幕的一半上打印原始 CarrierWave 对象链,当它对模型属性进行格式化检查时。 安装 将此行添加到应用程序的 ...