`
ddl1st
  • 浏览: 99489 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rails3 paperclip 添加水印

阅读更多
https://gist.github.com/784445

rails new example -d=mysql


cd example


Gemfile 添加
gem 'paperclip'


bundle install


新建文件/lib/paperclip_processors/watermark.rb
module Paperclip
  class Watermark < Thumbnail
    def initialize(file, options = {}, attachment = nil)
      super
      @watermark_path = options[:watermark_path]
      @position = options[:position].nil? ? "SouthEast" : options[:position]
    end

    def make
      src = @file
      dst = Tempfile.new([@basename].compact.join("."))
      dst.binmode

      return super unless @watermark_path

      params = "-gravity #{@position} #{transformation_command.join(" ")} #{@watermark_path} :source :dest"

      begin
        success = Paperclip.run("composite", params, :source => "#{File.expand_path(src.path)}[0]", :dest => File.expand_path(dst.path))
      rescue PaperclipCommandLineError
        raise PaperclipError, "There was an error processing the watermark for #{@basename}" if @whiny
      end

      dst
    end
  end
end


rails g scaffold image title:string


rails g paperclip image image


rake db:create && rake db:migrate


app/models/image.rb
require 'paperclip_processors/watermark'
class Image < ActiveRecord::Base
 has_attached_file :image,
                    :processors => [:watermark],
                    :styles => {
                      :medium => {
                        :geometry => "300x300>",
                        :watermark_path => "#{Rails.root}/public/images/rails.png"
                      },
                      :thumb => "100x100>",
                    }
end


app/views/images/_form.html.erb
<%= form_for(@image,:html => {:multipart => true}) do |f| %>
  <% if @image.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@image.errors.count, "error") %> prohibited this image from being saved:</h2>

      <ul>
      <% @image.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
    <div>
      <%= f.label :title %>
      <%= f.text_field :title %>
    </div>
    <div>
     <%= f.label :image %>
     <%= f.file_field :image %>
    </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>


app/views/show.html.erb
<p id="notice"><%= notice %></p>

<p>medium:</p>
<%= image_tag(@image.image.url(:medium)) %>
<%= link_to 'Edit', edit_image_path(@image) %> |
<%= link_to 'Back', images_path %>

0
0
分享到:
评论

相关推荐

    rails上传文件_paperclip

    Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件上传功能变得相当便捷。 **Paperclip的基本使用** 1. **安装与配置** 首先,你需要通过Gemfile来安装Paperclip,并运行`bundle install`命令: ```...

    Rails的文件附件扩展Paperclip.zip

    Paperclip 是 Rails 框架的一个插件,用于扩展 ActiveRecord 以支持简单的文件附件的功能。 标签:Paperclip

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    rails3教程

    ### Rails3教程知识点详解 #### 一、Rails3简介与核心原则 **Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念...

    Rails3常用命令行命令

    Rails3还支持安装插件,可以通过以下命令将插件添加到项目中: ```bash rails plugin install https://..../..git ``` 插件会被安装到`vendor/plugins`目录下,提供额外的功能或扩展。 以上就是Rails3的一些常用...

    centOS Rails3环境搭建

    ### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##...

    Rails 3 in Action

    《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...

    turbo-sprockets-rails3, 加速你的Rails 3资产.zip

    turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...

    ruby on rails 3

    Ruby on Rails 3 是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(Model-...提供的文档如"Ruby192和Rails3.0.3的新征程.doc"和"rails3入门教程.pdf"等,将有助于深入理解这一框架及其在实际项目中的应用。

    rails 3 upgrade handbook(simple樣例)

    ### Rails 3升级手册知识点详解 #### 一、Rails 3升级手册概览 本手册是一份详尽的指南,旨在帮助开发者顺利完成从旧版本Rails到Rails 3的升级过程。手册共包含近120页的内容,覆盖了升级过程中所需的所有关键信息...

    rails3-railsconf2010

    标题与描述均提到了"rails3-railsconf2010",这表明内容主要聚焦于Rails 3在2010年的RailsConf会议上的关键更新与特性。Rails(Ruby on Rails)是一种用Ruby语言编写的开源全栈web应用框架,以模型-视图-控制器(MVC...

    Ruby Rails 3 Linda

    在“Ruby Rails 3 Linda”这一主题中,我们将会深入探讨Rails 3版本的相关知识点。 1. **安装与设置**:首先,学习如何在本地环境中安装Ruby、RubyGems和Rails。Ruby版本管理器如RVM(Ruby Version Manager)或...

    The Rails3 Way, 2nd Edition

    The Rails™ 3 Way is the only comprehensive, authoritative guide to delivering production-quality code with Rails 3. Pioneering Rails expert Obie Fernandez and a team of leading experts illuminate ...

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip ...

    Ruby on Rails 3 Tutorial

    ### Ruby on Rails 3 教程知识点解析 #### 标题与描述中的核心知识点 - **Ruby on Rails 3**:一种流行的Web开发框架,基于Ruby语言。 - **经典教材**:表明本书是学习Ruby on Rails 3的一个权威且广受好评的资源...

    Rails3消息队列系统 Sidekiq

    Rails3消息队列系统 Sidekiq

    The Rails 3 Way, 2nd Edition

    ### 关于《Rails 3 的方式》第二版的知识点总结 #### 一、书籍概述与评价 《Rails 3 的方式》(The Rails 3 Way, 2nd Edition)是一本深入探讨Ruby on Rails框架(简称Rails)的技术书籍。本书不仅涵盖了Rails 3的...

    learing rails 3

    《Learning Rails 3》是一本关于Ruby on Rails的入门书籍,Ruby on Rails是一个开源的Web应用框架,它使用Ruby语言,为快速开发提供了一种简便的方法。Rails 3是这个框架的一个版本,虽然本书发行时Rails已经更新到...

    Rails 101 入门电子书

    #### 十、练习作业3-为Group与Post加入使用者机制 - **目标**: - 添加用户身份验证。 - **实现过程**: - 使用Devise gem。 - 实现登录/注册功能。 - 关联Group和User。 - **安全措施**: - 加入权限控制。 - ...

Global site tag (gtag.js) - Google Analytics