`
doabit
  • 浏览: 52809 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

rails3+ paperclip图片加水印

阅读更多
1. 新建项目,并移除index.html
 
  rails new paperclip-water
  rm public/index.html
 


2. 修改Gemfile 添加paperclip
  
 gem 'paperclip'


3. 新建asset
    r
ails g scaffold asset ttile:string


4. 添加paperclip支持
   
rails g paperclip asset data


5. 新建 lib/paperclip_processors/watermark.rb,源文件在:
    http://gist.github.com/raw/465088/3de6e4f50ff659b91ee094764af842968d4e0de3/watermark.rb

6. 修改asset.rb
 
require 'paperclip_processors/watermark'
class Asset < ActiveRecord::Base
  has_attached_file :data, :processors => [:watermark],
  :styles => {
    :original => {
      :geometry => '550x400>',
      :watermark_path => "#{Rails.root}/public/images/rails.png",#水印图片所在位置
      :position => 'Center' #添加的水印在图片哪个位置
    }
  }
end


7. 修改 _form.html.erb,添加文件上传支持,并修改 show.html.erb,显示图片
  
<%= form_for(@asset,:html => {:multipart => true}) do |f| %>

  #show.html.erb
   <p>
  <%= @asset.title %>
</p>
<p>
  <%=image_tag @asset.data.url() %>
</p>

   
8.  运行迁移文件
    
rake db:migrate


9.  修改routes.rb
   
      root :to => "assets#index"
      resources :assets
   


10. 启动项目 测试
   
    rails s
   


-------
继续打标记:
转载注明:javaeye--doabit..
----------------------------
7
1
分享到:
评论
11 楼 tiroc 2011-05-05  
我的问题解决了一部分,使用现面这个文件,其他的都按照你写的做就可以:
https://github.com/mpelos/nova_marine/blob/2dc882dac31532024d4edb196e4a632801738341/lib/paperclip_processors/watermark.rb
不过,又出现另外一个问题,就是:geometry => '550x400>'改成'550x400#'之后,composite命令就会失败。
10 楼 tiroc 2011-05-05  
doabit,你好!我完全按照这篇文章做下来,会出错:
wrong number of arguments (8 for 3)

出错位置:
lib/paperclip_processors/watermark.rb:56:in `make'

你的这个watermark.rb中,*params把数组拆开传递,我查看对应的方法源码Paperclip::CommandLine中是这样的:
def initialize (binary, params = "", options = {})

而如果我报watermark.rb56行的*去掉,会报watermark.rb61行的那个错误。
我的gem版本:
rails 3.0.3
paperclip 2.3.8
9 楼 doabit 2010-12-06  
wuyuntao 写道
请教一下 lz 的 paperclip 版本,我用的是 rails3 + paperclip 2.3.6 也会遇到 song.li 同样的问题

你好,我用的2.3.3的版本,
8 楼 wuyuntao 2010-11-26  
请教一下 lz 的 paperclip 版本,我用的是 rails3 + paperclip 2.3.6 也会遇到 song.li 同样的问题
7 楼 doabit 2010-11-13  
song.li 写道
rails 2.3.2环境

运行时提示watermark.rb 第56行 success = Paperclip.run(command, *params)
抛出wrong number of arguments (5 for 3)错误

你好,我只用 rails3.0做过,2.3的没试过
6 楼 song.li 2010-11-12  
rails 2.3.2环境

运行时提示watermark.rb 第56行 success = Paperclip.run(command, *params)
抛出wrong number of arguments (5 for 3)错误
5 楼 doabit 2010-10-09  
zcq100 写道
NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

这个问题终于搞定了,用script/plugin install安装paperclip就可以了,为什么用gem安装的老是提示方法找不到呢?我在文件里面用 require引用了的。


rails2的我也不太清楚,你可以去paperclip反应下,
4 楼 zcq100 2010-10-08  
NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

这个问题终于搞定了,用script/plugin install安装paperclip就可以了,为什么用gem安装的老是提示方法找不到呢?我在文件里面用 require引用了的。
3 楼 zcq100 2010-10-08  
doabit 写道
zcq100 写道
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

你好,我那个是rails3环境的,没有测试rails 2,不知道你安装的paperclip是哪个版本的

这几天头都搞大了,paperclip是直接gem install paperclip安装的,貌似它还依赖RMagic,但RMagic怎么都装不上去,编译源码的时候遇到一个问题google都没能解决。我的环境是OS X10.6。
2 楼 doabit 2010-10-06  
zcq100 写道
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

你好,我那个是rails3环境的,没有测试rails 2,不知道你安装的paperclip是哪个版本的
1 楼 zcq100 2010-10-06  
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

相关推荐

    rails上传文件_paperclip

    在Ruby on Rails框架中,Paperclip是一个非常流行的用于处理文件上传的库。它提供了一种简单而优雅的方式来管理和处理模型中的附件,如图片、文档等。Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件...

    Rails3+GithubOAuth2+设计示例应用程序_Ruby_JavaScript_下.zip

    标题 "Rails3+GithubOAuth2+设计示例应用程序" 提供了我们正在处理一个使用Rails 3框架构建的Web应用程序,该应用集成了Github的OAuth2授权机制。Rails是Ruby on Rails的简称,是一个流行的开源Web开发框架,以其DRY...

    Ruby On Rails系列从入门到精通实战教程 Ruby基础+Rails框架+网上商城项目实战

    Ruby On Rails系列从入门到精通实战教程 Ruby基础+Rails框架+网上商城项目实战

    CRA+RailsAPI+设计登录+ActiveAdmin样板_Ruby_JavaScript_下.zip

    标题 "CRA+RailsAPI+设计登录+ActiveAdmin样板_Ruby_JavaScript_下" 提供了关于项目的核心技术栈,其中包括Create React App (CRA)、Ruby on Rails API 和 ActiveAdmin,以及登录功能的设计。这是一份使用前端React...

    RailsAPI+React+Deviseの认证机能さんプル_Ruby_TypeScript.zip

    3. **Config files**: Rails的配置文件(如`config/database.yml`, `config/application.rb`等)定义了应用的行为和环境设置。 4. **Database schema**: 可能在`db`目录下的迁移文件(`.rb`)描述了数据库表的结构,...

    Ruby+Rails+社交+教程3

    本教程“Ruby+Rails+社交+教程3”旨在帮助开发者掌握如何利用Ruby的强大功能和Rails的优雅设计来构建一个具有用户交互性的社交平台。 首先,让我们深入了解一下Ruby。Ruby是一种面向对象的编程语言,以其简洁、易读...

    Ruby+Rails+社交+教程

    这个“Ruby+Rails+社交+教程”显然旨在引导开发者如何利用Rails的灵活性和强大功能构建一个完整的社交平台。以下是教程可能涵盖的一些核心知识点: 1. **Ruby基础知识**:首先,你需要对Ruby编程语言有基本的理解,...

    rails+grape+swagger+devise+capistrano 简单融合示例

    总结来说,这个"rails+grape+swagger+devise+capistrano"的简单融合示例展示了一个完整的、功能齐全的API项目架构。Rails作为基础框架,Grape负责API的构建,Swagger用于API的文档化,Devise处理用户认证,而...

    Ruby+Rails+社交+进阶教程5

    在本“Ruby+Rails+社交+进阶教程5”中,我们将深入探讨如何利用Ruby on Rails框架构建一个功能丰富的社交网络平台。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制...

    json_schema_rails:用于Rails 3+的JSON模式验证器和生成器

    用于Rails 3+的验证器和生成器 安装 将此行添加到您的应用程序的Gemfile中: gem 'json_schema_rails' 然后执行: $ bundle 或将其自己安装为: $ gem install json_schema_rails 用法 生成架构文件 您可以...

    Rails N + 1查询自动检测为零误报/误报-Ruby开发

    Prosopite能够以零误报/误报自动检测Rails N + 1查询。 Prosopite Prosopite能够自动检测零误报/误报的Rails N + 1查询。 已检测到N + 1个查询:从`users`的WHERE`users.`id` = 20 LIMIT 1中选择SELECT`users`。*从`...

    Rake任务的宝石,可帮助您为Rails 3+应用程序找到未使用的路线和控制器动作-Ruby开发

    Traceroute¶↑Rake任务,可帮助您在Rails 3+应用程序中查找死路线和未使用的动作。 功能¶↑此Rake任务调查Rails应用程序的路由定义,然后向您显示未使用的路由。Traceroute¶↑Rake任务可帮助您在Rails 3+应用程序...

    rails4_crud_with_angularjs:Rails4 + AngularJS 嵌套表单

    Rails4 + AngularJS 查看演示应用程序。 使用 Rails4 + AngularJS 的 CRUD 示例 在这个应用程序中,我给出了如何使用 Rails4 和 AngularJS 创建 CRUD 操作的示例。 使用 AngularJS 创建嵌套表单 当我们需要在 ...

    open_taobao:淘宝开放平台客户端ruby版,支持Rails3+

    支持Rails3 +。 注意 pid已从配置文件中删除,不再需要。 将OpenTaobao :: Error消息从v0.2.1更改为json字符串。 安装 将此行添加到您的应用程序的Gemfile中: gem 'open_taobao' 如果要使用作为HTTP客户端而不是...

    fineryrycms:支持Rails 6.0+的可扩展Ruby on Rails CMS

    Rails 5.1+的开源内容管理系统 有关更多信息,访问 您可以使用Gitter与我们聊天: 您可以将示例应用程序部署到Heroku: 要求 :warning_selector: 警告:ImageMagick当前具有严重的安全漏洞CVE-2016–3714。 安装...

    bootstrap3-datetimepicker-rails:这个gem打包了Rails 3.1+资产管道的bootstrap-datetimepicker

    bootstrap3-datetimepicker-rails 此gem打包了Rails 3.1+资产管道的 。 Eonasdan的tarruda的的分支得到了积极维护,并与。 是必需的依赖项。 安装 将这些行添加到应用程序的Gemfile中: gem 'momentjs-rails' , ...

    Agile+Web+Development+with+Rails+(4th+Ed....pdf

    Agile+Web+Development+with+Rails+(4th+Ed....pdf

    contact_us:宝石通过Rails 3+引擎提供简单的联系表单功能

    联系我们 提供基本联系表的Rails 3+ Engine。 还有一个演示应用程序,显示ContactUs表单的工作方式:要求与我们联系需要: Ruby&gt; = 1.9.3 导轨&gt; = 3.0.0 还建议使用Formtastic或SimpleForm(请参阅配置),以挂接到...

    elemental_components:Rails 5.1+的简单视图组件

    Rails 5.1+的简单视图组件,旨在与配合使用。 两者的灵感来自( 的作品以及《寂寞星球》(Lonely Planet)风格指南 的。 安装 将此行添加到您的应用程序的Gemfile中: gem "elemental_components" 然后执行: $ ...

    Godmin:Rails 4+的管理框架

    上帝 如果您正在寻找与Rails 4+兼容的当前稳定版本,请参见分支Godmin是Rails 5+的管理框架。 用它来为您的应用程序或独立的管理应用程序(例如内部工具)构建专用的管理部分。 它支持常用功能,例如范围,筛选和对...

Global site tag (gtag.js) - Google Analytics