图片上传插件Acts As Attachment

阅读更多

开始也是下载
在项目目录下面运行

Ruby代码 复制代码  收藏代码
  1. script/plugin source http://svn.techno-weenie.net/projects/plugins  


然后是安装

Ruby代码 复制代码  收藏代码
  1. script/plugin install acts_as_attachment  


创建dvd_cover模型

Ruby代码 复制代码  收藏代码
  1. script/generate attachment_model dvd_cover   
  2.   
  3.   
  4.     create_table :dvd_covers do |t|   
  5.       t.column "dvd_id":integer  
  6.       t.column "content_type":string  
  7.       t.column "filename":string        
  8.       t.column "size":integer  
  9.       t.column "parent_id",  :integer    
  10.       t.column "thumbnail":string  
  11.       t.column "width":integer     
  12.       t.column "height":integer  
  13.     end  



数据库重新rake下

Ruby代码 复制代码  收藏代码
  1. rake db:migrate  



下面在把生成的模型DvdCover中的代码替换成这个(全部替换下就好了)

Ruby代码 复制代码  收藏代码
  1. class DvdCover < ActiveRecord::Base   
  2.   belongs_to :dvd  
  3.   acts_as_attachment :storage => :file_system:max_size => 300.kilobytes, :content_type => :image  
  4.   validates_as_attachment   
  5. end  



让后下面的自己去写下吧(分开了反而看不清楚)

Ruby代码 复制代码  收藏代码
  1. ## app/controllers/dvd_covers_controller.rb   
  2. class DvdCoversController < ApplicationController   
  3.   def index   
  4.     @dvd_covers = DvdCover.find(:all)   
  5.   end  
  6.   
  7.   def new  
  8.     @dvd_cover = DvdCover.new  
  9.   end  
  10.   
  11.   def show   
  12.     @dvd_cover = DvdCover.find params[:id]   
  13.   end  
  14.   
  15.   def create   
  16.     @dvd_cover = DvdCover.create! params[:dvd_cover]   
  17.     redirect_to :action => 'show':id => @dvd_cover  
  18.   rescue ActiveRecord::RecordInvalid   
  19.     render :action => 'new'  
  20.   end  
  21. end  
  22.   
  23. ## app/views/dvd_covers/index.rhtml   
  24. DVD Covers

      
  25.   
    •   
    • <% @dvd_covers.each do |dvd_cover| -%>   
    •   
    • <%= link_to dvd_cover.filename, :action => 'show':id => dvd_cover %>
    •   
    • <% end -%>   
      
  26.   
  27. <%= link_to 'New':action => 'new' %>

      
  28.   
  29. ## app/views/dvd_covers/new.rhtml   
  30. New DVD Cover

      
  31.   
  32. <% form_for :dvd_cover:url => { :action => 'create' }, :html => { :multipart => true } do |f| -%>   
  33.   

    <%= f.file_field :uploaded_data %>

      
  34.   

    <%= submit_tag :Create %>

      
  35. <% end -%>   
  36.   
  37. ## app/views/dvd_covers/show.rhtml   
  38. <%= @dvd_cover.filename %>

      
  39. <%= image_tag @dvd_cover.public_filename, :size => @dvd_cover.image_size %>  

你可能感兴趣的:(图片上传插件Acts As Attachment)