加载中…
个人资料
liuhong1.happy
liuhong1.happy
  • 博客等级:
  • 博客积分:0
  • 博客访问:543,839
  • 关注人气:126
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

【翻译】Paperclip From github

(2013-04-09 22:38:14)
分类: CF与RoR
一、引子
Paperclip旨在成为一个简单的Active Record文件附件库。其背后的意图是尽可能容易安装,就像处理文件是对待文件属性一般。这意味着文件不会被保存到磁盘上的最终位置, 如果文件对象为nil,它是不被删除,也不会被"ActiveRecord::Base#save" 调用保存。管理规模和存在的基础上,如果需要验证。
如果需要的话,它可以分配给它的图像转换成缩略图,和先决条件是简单,只要安装ImageMagick的(其中,最现代化的基于Unix的系统,是那样容易安装正确的软件包)。附加的文件保存到文件系统,并在浏览器中引用一个容易理解的规范,其中有明智和有用的违约。
二、前提要求(Requirements)
1、Ruby and Rails
Paperclip 现在要求 Ruby 版本 >= 1.9.2 and Rails 版本 >= 3.0。
如果你使用的Ruby 1.8.7和Ruby on Rails的2.3.x的,你仍然可以使用Paperclip2.7.x在您的项目中。同时,要获取Paperclip 2.7.x的帮助,则不要到最新版本的github论坛去查看。
2、图像处理器-ImageMagick (sudo apt-get install imagemagick)
ImageMagick必须安装,并且Paperclip有权限去访问它。为了确保这些,请在命令行上执行命令 which convert (ImageMagick的工具之一)。这会给你安装该实用程序所在的路径。例如,它可能会返回 /usr/local/bin/convert.
在development模式下,编辑文件config/environments/development.rb :
Paperclip.options[:command_path] = "/usr/local/bin/"
三、安装Paperclip
在你的Gemfile文件中,添加gem "paperclip", "~> 3.0",并运行bundle install即可下载安装。
如果使用Rails 2.3.x,则你需要在你的Gemfile文件中,添加gem "paperclip", "~> 2.7"。
四、快速开始(Quick Start)
1、
在你的Modle中,添加如下代码,例如:
class User < ActiveRecord::Base
  attr_accessible :avatar
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
end
在你的迁移中(migrations),添加格式如下的内容:
class AddAvatarColumnsToUsers < ActiveRecord::Migration
  def self.up
    add_attachment :users, :avatar
  end

  def self.down
    remove_attachment :users, :avatar
  end
end
或者:
执行命令:rails generate paperclip user avatar

2、然后:
在你的编辑和新建视图(edit and new views)中,添加如下内容:
< %= form_for @user, :url => users_path, :html => { :multipart => true } do |form| %>
  < %= form.file_field :avatar %>
< % end %>
3、在你的控制器(controller)中:
def create
  @user = User.create( params[:user] )
end

4、在你需要显示的视图中,添加
  < %= image_tag @user.avatar.url %>
< %= image_tag @user.avatar.url(:medium) %>
< %= image_tag @user.avatar.url(:thumb) %>
5、为了取下一个文件,只需将该属性设置为 nil
@user.avatar = nil
@user.save

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有