在做web前端时,难免会遇到要让用户上传文件的时候,而rails 提供了一个非常好用的gem --
carrierwave
第一步:安装gem-carrierwave
第二步:项目中需要有一个叫upload的 generate (假定我们要上传一个apk)
$ rails g uploader Apk
这一步会创建一个app/uploaders/apk_uploader.rb
第三步:在对应的数据库中添加对应的字段(我的是versions)
$ rails g migration AddApkToVersions apk:string
(数据表中就多了一个apk字段)
第四步:执行数据库迁移
$ bundle exec rake db:migrate
第五步:在 Version的model文件中添加如下(使之与表关联)
mount_uploader :apk, ApkUploader
第六步:在你想添加的view中添加
例如:
<%= form_for @user, :html => {:multipart => true} do |f| %>
<%= f.file_field :apk %>
<%= f.hidden_field :apk_cache %>
<% end %>
(如果你想调用这个文件的url 可以使用@version.apk_url)
到这步,就基本的实现了上传文件功能