Rails框架技术讲座:基于RMagic使用插件attachment_fu
Posted by cnruby Mon, 25 Jun 2007 21:24:00 GMT
Rails框架技术讲座:基于RMagic使用插件attachment_fu
目录
(一)系统环境:
- Ruby 语言 1.8.4版本, 点击这里Ruby1.8.4。要想安装多个Ruby语言运行环境请看这里。
- Rails 框架 1.2.1版本,安装方法请看这里,最简单方法是第一种方法即可。
- Windows XP 或者 Windows 2000操作系统 或者 Linux操作系统
- 需要一个浏览器,如FireFox1.5.0.1以上版本。
- 开发编辑工具 Notepad2 ,安装方法请单击这里,复制一个notepad2.exe,并且更名为vi.exe。
- 在Windows XP上安装Linux核心命令,点击这里。
- 如何在Windows Console下使用命令svn(下载软件),点击这里。
(二)前提条件:
- 在本机Winodw操作系统上,我们的工作目录为d:\works_rails。
- 你的电脑必须在线。
- 安装软件ImageMagic和RMagic:
wget http://rubyforge.org/frs/download.php/15132/RMagick-1.14.1_IM-6.3.0-7-Q8.zip
unzip RMagick-1.14.1_IM-6.3.0-7-Q8.zip
cd RMagick-1.14.1_IM-6.3.0-7-Q8
gem install rmagick-1.14.1-win32.gem -l
start ImageMagick-6.3.0-7-Q8-windows-dll.exe
(三)目的:
- 在软件ImageMagick和及其Ruby语言软件接口RMagick基础上,如何使用Rails框架的图片上载插件attachment_fu,该插件使用方便和集成简单。相关说明请看这里。
- 本讲座的完整代码请您在Google Code Hosting上查看
或者下载:http://cnruby.googlecode.com/svn/trunk/rails-projects/use_attachment_fu_rmagicsvn co http://cnruby.googlecode.com/svn/trunk/rails-projects/hobo_view01
(四)解决方案:
- 创建一个Rails框架应用软件,安装图片上载插件attachment_fu
rails use_attachment_fu_rmagic
cd use_attachment_fu_rmagic
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/ - 根据Rails框架自动代码生成技术,生成控制器Thumb及其相关代码,该命令与命令scaffold不同的是,它不需要事先把数据库表生成好。这是基于REST技术的代码生成工具。
ruby script\generate scaffold_resource Thumb - 根据Rails框架数据库迁移技术,编写迁移代码:
vi db\migrate\001_create_thumbs.rb
def self.up
create_table :thumbs do |t|
t.column :parent_id, :integer
t.column :content_type, :string
t.column :filename, :string
t.column :thumbnail, :string
t.column :size, :integer
t.column :width, :integer
t.column :height, :integer
end
end - 修改数据库配置文件并且执行数据库迁移命令
vi config\database.yml
development:
adapter: sqlite3
database: db/attachment_fu.db
test:
development
production:
development
rake db:migrate - 修改数据库模型代码,基本上固定的。
vi app\models\thumb.rb
has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 500.kilobytes,
:resize_to => '320x200',
:thumbnails => { :thumb => '100x100' }
validates_as_attachment - 修改控制器代码,根据需要而定,这是一个实例代码。
vi app\controllers\thumbs_controller.rb
def index
@thumbs = Thumb.find(:all, :conditions=>["thumbnail is null"])
respond_to do |format|
format.html # index.rhtml
format.xml { render :xml => @thumbs.to_xml }
end
end - 修改页面两个页面,这是该插件典型的代码。
vi app\views\thumbs\new.rhtml
<% form_for(:thumb, :url => thumbs_path,
:html => { :multipart => true }) do |f| -%>
<p>
<label for="thumb">Upload A Image:</label>
<%= f.file_field :uploaded_data %>
</p>
<p>
<%= submit_tag 'Create' %>
</p>
<% end -%>
vi app\views\thumbs\index.rhtml
<h1>Most Wanted</h1>
<% for t in @thumbs -%>
<%= link_to image_tag(thumb.public_filename(:t)), thumb.public_filename %>
<% end -%> - 启动浏览器并且输入网址:
ruby script/server
http://localhost:3000/thumbs
(五)视听教学:
(六)必须注意的问题:
(七)参考资料:
(八)命令清单:
rails use_attachment_fu_rmagic ruby script/server
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/
ruby script\generate scaffold_resource Thumb
vi db\migrate\001_create_thumbs.rb
def self.up
create_table :thumbs do |t|
t.column :parent_id, :integer
t.column :content_type, :string
t.column :filename, :string
t.column :thumbnail, :string
t.column :size, :integer
t.column :width, :integer
t.column :height, :integer
end
end
vi config\database.yml
development:
adapter: sqlite3
database: db/attachment_fu.db
test:
development
production:
development
rake db:migrate
vi app\models\thumb.rb
has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 500.kilobytes,
:resize_to => '320x200',
:thumbnails => { :thumb => '100x100' }
validates_as_attachment
vi app\controllers\thumbs_controller.rb
def index
@thumbs = Thumb.find(:all, :conditions=>["thumbnail is null"])
respond_to do |format|
format.html # index.rhtml
format.xml { render :xml => @thumbs.to_xml }
end
end
vi app\views\thumbs\new.rhtml
<% form_for(:thumb, :url => thumbs_path,
:html => { :multipart => true }) do |f| -%>
<p>
<label for="thumb">Upload A Image:</label>
<%= f.file_field :uploaded_data %>
</p>
<p>
<%= submit_tag 'Create' %>
</p>
<% end -%>
vi app\views\thumbs\index.rhtml
<h1>Most Wanted</h1>
<% for t in @thumbs -%>
<%= link_to image_tag(thumb.public_filename(:t)), thumb.public_filename %>
<% end -%>http://localhost:3000/thumbs
(九)下载文件pdf:
________________________________________________________________ 您只要点击下面图标,就可以把本文加入到您喜欢的公共收藏库中去。



![Validate my RSS feed [Valid RSS]](/blog1/files/valid-rss.png)




