スポンサーサイト
2013.07.04 Thursday
一定期間更新がないため広告を表示しています
はじめてのRuby on Rails、トラブル記録
Paperclipで保存したファイルの削除
2009.11.02 Monday
Paperclipで保存したファイルの消し方がわかったのでメモ。
has_atacched_file :photoのときの例。 def delete_photo @user = User.find(params[:id]) @user.photo.destroy # 画像ファイルを削除 @user.photo_file_name = nil # ファイル名を空にした(この辺はモデルの設定に応じて。以下も。) @user.photo_content_type = nil @user.photo_file_size = nil @user.save! redirect_to(@user) end Paperclipでファイルアップロード
2009.09.29 Tuesday
かんたんRuby on RailsでWebアプリケーション開発の5日目、アルバムプロジェクトをRails2.3.4で作りなおしてみたものの、 ファイルのアップロードがどうしてもうまくいかなくてムキー ファイルそのものじゃなくてディレクトリ名を保存するってのがなんか難しいよ。。。 そこでなんかほかに方法はないものかと思ってまたプラグインを探してみたところ出てきたのがこのPaperclip。 気に入ったのは、専用のモデルが必要なくて、自分で作ったほかのモデルに取り込めるというとこ。 あとはなんとなく簡単そうだった。 というわけでさっそく入れてみます。 本家 ・http://www.thoughtbot.com/projects/paperclip ・git http://github.com/thoughtbot/paperclip 【1】インストール本家とgitにあるURLでインストールしようとしたんだけれどなぜかうまくインストールできず。 仕方なくgitに置いてあるのを手動でダウンロードしてvendor/pluginsの下にフォルダ名paperclipで置きました。 しかし【2】の設定までやってもうんともすんともで、ググったらgemで入れた方がいいぜ!というのを何件か見かけたのでgemでも入れてみたら動いた。 でもログ見るとvendor/pluginsの下のを見に行ってるっぽいんだけどなあ。。。よくわからない まあ次にいきましょう。 【2】モデルの設定使い方はこちらのサイトやプラグインフォルダ内のREADME.rdocにわかりやすいです。 今回はpageというモデルにアップロードファイル情報も入れようと思います。 photos_to_pagesというマイグレーションファイルを作ります。 ruby script¥generate migration photos_to_pages db/migrate/****_photos_to_pages.rbのdef self.upとde self.downの中に以下のコードを追加します。 このへんの追加する項目も好みで変えられるみたいですが、とりあえず本家サイトに書いてあるののコピペでw class PhotosToPages < ActiveRecord::Migration できたらマイグレーションします。def self.up add_column :pages, :photo_file_name, :string # Original filename add_column :pages, :photo_content_type, :string # Mime type add_column :pages, :photo_file_size, :integer # File size in bytes end def self.down remove_column :pages, :photo_file_name remove_column :pages, :photo_content_type remove_column :pages, :photo_file_size end end rake db:migrate 次に、app/models/page.rbに以下のコードを追加します。 # Paperclip :pathで保存するところを変えられるみたいだったので変えました。has_attached_file :photo, # :styles => { # :thumb=> "100x100#", # :small => "150x150>" } :path => ":rails_root/public/store/images/:basename.:extension", :url => "/store/images/:basename.:extension" :urlは表示用のURLです。 コメントアウト部分は、入れてみたらエラーが出て、ログを見たらこんなメッセージが入ってました。 [paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: C:/ほにゃらら/Temp/stream.4420.1 is not recognized by the 'identify' command.> ImageMagickとかいう別のプラグインと連携できるはずなので、その絡み? たぶんサムネイル作ったりファイルサイズ変えたりというのはImageMagickがないとできないのではと思って消しました。 そしたら動いたのでこれでOKかな。 validationについては次回で〜。 【参考】 http://jimneath.org/2008/04/17/paperclip-attaching-files-in-rails/ |
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site
|