用Paperclip上传多个附件
luyued 发布于 2011-04-22 18:53 浏览 N 次【ABitNo的博文,看了还没时间实现,留着等空些时候自己实现一下】
【原文地址:http://abitno.me/has-many-with-paperclip-to-upload-multiple-attachments】
在Rails程序里上传文件你会用什么呢?反正我是用的paperclip,至少它支持Ruby1.9和Rails3。哪个2B再抄我的文章甚至是改我的文章天天夜里和猪爱爱白天一直吃猪粮!
这是tutorial,所以你只需要按照步骤来就能完成一个可运行的DEMO。前提是我用的ruby 1.9.2preview3和Rails 3.0.0.beta4,你可以与我不同,不过我不保证会顺利。
我要说的是Post与Asset之间has_many的association,就是一个Post有很多的Asset。如果你只想要has_one的可以直接参看paperclip的快速入门
准备工作
我们需要一个新的Rails项目weblog,然后添加一个Post
gem install paperclip
rails weblog
cd weblog
rails g scaffold post title:string body:text
rake db:migrate
rails s
好的,访问http://localhost:3000/posts,现在一个简单的blog就完成了。
添加Asset模型
首先在Gemfile里添加一行gem 'paperclip'
,然后自然是生成一个Model了
rails g model asset data_file_name:string data_content_type:string data_file_size:integer data_updated_at:datetime post_id:integer
rake db:migrate
接下来是声明相应的从属关系
# app/models/post.rb
classPost < ActiveRecord::Base
has_many :assets
accepts_nested_attributes_for :assets
end
# app/models/asset.rb
classAsset < ActiveRecord::Base
belongs_to :post
has_attached_file :data, :url => "/system/:attachment/:id/:style/:filename"
end
简单修改Controller
打开PostsController,很SB的这样修改一下new方法,只是DEMO!!!
defnew
@post=Post.new
@post.assets.build
@post.assets.build
respond_to do |format|
format.html# new.html.erb
format.xml { render:xml => @post }
end
end
简单修改View
在_form.html.erb里面添加下面一块内容
<%= f.fields_for:assetsdo |asset_form| %>
>
<%= asset_form.file_field:data%>
>
<%end%>
哦,由于要上传文件,那自然要这样修改一下_form.html.erb
<%=form_for(@post, :html => { :multipart => true }) do |f| %>
然后在展示页面show.html.erb添加如下内容
Assets:
- <%= asset.data.url%>
<%@post.assets.eachdo |asset| %>
<%end%>
好的,现在可以用了,为保证tutorial的简单明了,很粗糙很粗糙。。。
上一篇:昆山建邦公司削减全市百分之七十五的化学需氧量 下一篇:Symbian绘图全过程
相关资讯
- 05-20· 证 据 目 录的格式
- 05-14· 发现一个BUG nForce2 的主板
- 05-14· NEC EXPRESSCLUSTER X3.0 FOR WIN
- 05-14· 最近有什么好听的歌呢?
- 05-13· 小园子的惊喜
- 05-13· 推荐的电脑配置
- 05-13· 飒飒秋风起,点点胭脂泪
- 05-13· 振作!!
- 05-11· 宏碁/精英有意并购浩鑫
- 05-11· [转]真实:17岁少年在校不
图文资讯
最新资讯
- 05-09· 3、21--3、25成长足迹公布
- 05-09· 和小伙伴闹矛盾(3月5日)
- 05-09· 浩鑫简约 X27D
- 05-09· 今天有点烦躁
- 05-09· 为什么富士康郭台铭最看
- 05-09· 南通热线信息超市_南通汽
- 05-09· [置顶]iPad2零组件供应商剖
- 05-09· 北京富士康科技有限公司
- 05-09· 富士康去年亏损2.18亿美元
- 05-09· 《富士康十二连跳在这以