「Attachment_fuプラグイン」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
**プラグイン名
Attachment_fuプラグイン
**このプラグインができること
+acts_as_attachmentの機能改良版。
+ファイル(特に画像)のアップロードや表示を効率化できる
+ファイルアップロード時に複数サイズのサムネイルを生成できる(要RMagick)
+ファイルの保存先はファイルシステムかDBかを選択できる。AmazonのS3サービスにも対応しているらしい。
+画像表示時のヘルパーもついてる
**対象バージョン
1.2系
**ちょー簡単な使い方
>script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/
でインストールして、
>script/generate model mugshot
とかで普通にモデルとマイグレーションファイルを用意。
>class CreateMugshots < ActiveRecord::Migration
> def self.up
> create_table :mugshots 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
> def self.down
> drop_table :mugshots
> end
>end
こんな感じのテーブル作って、マイグレートできたらモデルに
>class Mugshot < ActiveRecord::Base
> has_attachment :content_type => :image,
> :storage => :file_system,
> :max_size => 3000.kilobytes,
> # :size => 0.megabyte..10.megabytes,
> # :resize_to => '320x200>',
> :processor => 'Rmagick',
> :thumbnails => { :thumb => '100x100>', :small => '50x50>' },
> :path_prefix => "public/system/#{table_name}"
> validates_as_attachment
>end
てな具合にアップロード時の設定を書いておいて、
>class MainController < ApplicationController
> def new
> @mugshot = Mugshot.new
> end
> def create
> @mugshot = Mugshot.new(params[:mugshot])
> if @mugshot.save
> flash[:notice] = 'Mugshot was successfully created.'
> redirect_to '/main/index'
> else
> render :action => :new
> end
> end
> def index
> @mugshots = Mugshot.find(:all,
> :conditions => ["parent_id is null"]
> )
> end
>end
とかってコントローラーを作って、index用のviewは
><h1>Sample Index</h1>
><% for mugshot in @mugshots -%>
> <%= link_to image_tag(mugshot.public_filename(:small)), mugshot.public_filename %>
><% end -%>
><%= link_to 'new', {:action => :new} %>
new用のviewは
><%= error_messages_for :mugshot %>
><% form_for(:mugshot, :url => 'create',
> :html => { :multipart => true }) do |f| -%>
> <p>
> <label for="mugshot">Upload A Mugshot:</label>
> <%= f.file_field :uploaded_data %>
> </p>
> <p>
> <%= submit_tag 'Create' %>
> </p>
><% end -%>
><%= link_to 'index', {:action => :index} %>
で使えるはず。
(モロパクなので[[cuspos diary Ruby on Railsファイルアップロードプラグイン attachment_fu>>http://d.hatena.ne.jp/cuspos/20071110/1194642860#20071110f2]]を参考にしてください)
**公式ページ
-どこなんでしょう?
**日本語解説ページ
-[[cuspos diary Ruby on Railsファイルアップロードプラグイン attachment_fu>>http://d.hatena.ne.jp/cuspos/20071110/1194642860#20071110f2]]
※基本的な使い方はこれでOK
※日本にもユーザーが結構居るようで、ググればノウハウも結構溜まっているみたい。
**外国語解説ページ
-[[Mike Clark's Weblog File Upload Fu>>http://clarkware.com/cgi/blosxom/2007/02/24]]
※結構良い
**のうはう
-こういうのこそポリモーフィック関連を使えば楽なのかも(未実践)
-ひとつのモデルに画像とかPDFとかExcelファイルとか入れても大丈夫なのかなぁ?(実践中)
-RMagickがちゃんとインストールされているか心配なときは、以下のコードをirbなどで実行してみよう。ちなみに、カレントディレクトリにtest.jpgがある前提だ。
>require 'rubygems'
>require 'RMagick'
>image = "test.jpg"
>original = Magick::Image.read(image).first
>resized = original.resize_to_fit(75,100)
>resized.write("test_resized.jpg")
-上の例で言うと、Articleモデル has_many(or has_one) :mugshotの時に、サムネイルのレコードはarticle_idが入って、parent_idがnullになるので、Articleモデル側では
>has_many :mugshot, :condition => "parent_id is null"
を付けておくと幸せかも。(あまり自信無い)
-マイグレーションファイルの構造を載せておく
>attachment_fu migrations
>========================
>Fields for attachment_fu metadata tables...
> in general:
> size, :integer # file size in bytes
> content_type, :string # mime type, ex: application/mp3
> filename, :string # sanitized filename
> that reference images:
> height, :integer # in pixels
> width, :integer # in pixels
> that reference images that will be thumbnailed:
> parent_id, :integer # id of parent image (on the same table, a self-referencing foreign-key).
> # Only populated if the current object is a thumbnail.
> thumbnail, :string # the 'type' of thumbnail this attachment record describes.
> # Only populated if the current object is a thumbnail.
> # Usage:
> # [ In Model 'Avatar' ]
> # has_attachment :content_type => :image,
> # :storage => :file_system,
> # :max_size => 500.kilobytes,
> # :resize_to => '320x200>',
> # :thumbnails => { :small => '10x10>',
> # :thumb => '100x100>' }
> # [ Elsewhere ]
> # @user.avatar.thumbnails.first.thumbnail #=> 'small'
> that reference files stored in the database (:db_file):
> db_file_id, :integer # id of the file in the database (foreign key)
>
>Field for attachment_fu db_files table:
> data, :binary # binary file data, for use in database file storage
#image(http://farm4.static.flickr.com/3163/2773235023_02ea53ee2b.jpg?v=0)
**コメント
#pcomment(reply)
**プラグイン名
Attachment_fuプラグイン
**このプラグインができること
+acts_as_attachmentの機能改良版。
+ファイル(特に画像)のアップロードや表示を効率化できる
+ファイルアップロード時に複数サイズのサムネイルを生成できる(要RMagick)
+ファイルの保存先はファイルシステムかDBかを選択できる。AmazonのS3サービスにも対応しているらしい。
+画像表示時のヘルパーもついてる
**対象バージョン
1.2系
**ちょー簡単な使い方
>script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/
でインストールして、
>script/generate model mugshot
とかで普通にモデルとマイグレーションファイルを用意。
>class CreateMugshots < ActiveRecord::Migration
> def self.up
> create_table :mugshots 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
> def self.down
> drop_table :mugshots
> end
>end
こんな感じのテーブル作って、マイグレートできたらモデルに
>class Mugshot < ActiveRecord::Base
> has_attachment :content_type => :image,
> :storage => :file_system,
> :max_size => 3000.kilobytes,
> # :size => 0.megabyte..10.megabytes,
> # :resize_to => '320x200>',
> :processor => 'Rmagick',
> :thumbnails => { :thumb => '100x100>', :small => '50x50>' },
> :path_prefix => "public/system/#{table_name}"
> validates_as_attachment
>end
てな具合にアップロード時の設定を書いておいて、
>class MainController < ApplicationController
> def new
> @mugshot = Mugshot.new
> end
> def create
> @mugshot = Mugshot.new(params[:mugshot])
> if @mugshot.save
> flash[:notice] = 'Mugshot was successfully created.'
> redirect_to '/main/index'
> else
> render :action => :new
> end
> end
> def index
> @mugshots = Mugshot.find(:all,
> :conditions => ["parent_id is null"]
> )
> end
>end
とかってコントローラーを作って、index用のviewは
><h1>Sample Index</h1>
><% for mugshot in @mugshots -%>
> <%= link_to image_tag(mugshot.public_filename(:small)), mugshot.public_filename %>
><% end -%>
><%= link_to 'new', {:action => :new} %>
new用のviewは
><%= error_messages_for :mugshot %>
><% form_for(:mugshot, :url => 'create',
> :html => { :multipart => true }) do |f| -%>
> <p>
> <label for="mugshot">Upload A Mugshot:</label>
> <%= f.file_field :uploaded_data %>
> </p>
> <p>
> <%= submit_tag 'Create' %>
> </p>
><% end -%>
><%= link_to 'index', {:action => :index} %>
で使えるはず。
(モロパクなので[[cuspos diary Ruby on Railsファイルアップロードプラグイン attachment_fu>>http://d.hatena.ne.jp/cuspos/20071110/1194642860#20071110f2]]を参考にしてください)
**公式ページ
-どこなんでしょう?
**日本語解説ページ
-[[cuspos diary Ruby on Railsファイルアップロードプラグイン attachment_fu>>http://d.hatena.ne.jp/cuspos/20071110/1194642860#20071110f2]]
※基本的な使い方はこれでOK
※日本にもユーザーが結構居るようで、ググればノウハウも結構溜まっているみたい。
**外国語解説ページ
-[[Mike Clark's Weblog File Upload Fu>>http://clarkware.com/cgi/blosxom/2007/02/24]]
※結構良い
**のうはう
-こういうのこそポリモーフィック関連を使えば楽なのかも(未実践)
-ひとつのモデルに画像とかPDFとかExcelファイルとか入れても大丈夫なのかなぁ?(実践中)
-RMagickがちゃんとインストールされているか心配なときは、以下のコードをirbなどで実行してみよう。ちなみに、カレントディレクトリにtest.jpgがある前提だ。
>require 'rubygems'
>require 'RMagick'
>image = "test.jpg"
>original = Magick::Image.read(image).first
>resized = original.resize_to_fit(75,100)
>resized.write("test_resized.jpg")
-上の例で言うと、Articleモデル has_many(or has_one) :mugshotの時に、サムネイルのレコードはarticle_idが入って、parent_idがnullになるので、Articleモデル側では
>has_many :mugshot, :condition => "parent_id is null"
を付けておくと幸せかも。(あまり自信無い)
-マイグレーションファイルの構造を載せておく
>attachment_fu migrations
>========================
>Fields for attachment_fu metadata tables...
> in general:
> size, :integer # file size in bytes
> content_type, :string # mime type, ex: application/mp3
> filename, :string # sanitized filename
> that reference images:
> height, :integer # in pixels
> width, :integer # in pixels
> that reference images that will be thumbnailed:
> parent_id, :integer # id of parent image (on the same table, a self-referencing foreign-key).
> # Only populated if the current object is a thumbnail.
> thumbnail, :string # the 'type' of thumbnail this attachment record describes.
> # Only populated if the current object is a thumbnail.
> # Usage:
> # [ In Model 'Avatar' ]
> # has_attachment :content_type => :image,
> # :storage => :file_system,
> # :max_size => 500.kilobytes,
> # :resize_to => '320x200>',
> # :thumbnails => { :small => '10x10>',
> # :thumb => '100x100>' }
> # [ Elsewhere ]
> # @user.avatar.thumbnails.first.thumbnail #=> 'small'
> that reference files stored in the database (:db_file):
> db_file_id, :integer # id of the file in the database (foreign key)
>
>Field for attachment_fu db_files table:
> data, :binary # binary file data, for use in database file storage
#image(http://farm4.static.flickr.com/3163/2773235023_02ea53ee2b.jpg?v=0)
[[WWW SQL Designerファイル>http://www13.atwiki.jp/maimuzo?cmd=upload&act=open&pageid=29&file=attachment_fu.xml]]
**コメント
#pcomment(reply)
**トラックバック
&link_trackback(text=トラックバック表示)