Home > Programming > attachment_fu プラグイン

attachment_fu プラグイン

sshot-25

Ruby on Rails のお勉強中。
だんだん慣れてきて、エラーが出ても原因の見当がつくようになってきた。まだまだ、ruby の文法をマスターしていないので、意外なところで間違える。「elsif」を「elseif」って書いてたりとかw

今回は、attachment_fu プラグインを入れて、Webページにファイルを添付できるようにした。導入方法はココを読めば分かる。アップロードしたファイルを DB・ファイルシステム・Amazon S3 に保存可能で、RMagick などと連携してファイルのアップロード → サムネイル生成も簡単に行える。

Mike Clark’s Weblog
http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu

添付ファイルはTextile文法を勝手に拡張して

[[0]]
[[1:代替テキスト]]

という記法で、ファイルへのリンクや展開された画像として埋め込めるようにしてみた(数字は添付ファイルの添え字。この記法はあまりエレガントじゃないな。添付ファイルを削除して添え字がずれたら面倒なことになる)。

今日はあまり躓かなかったのだけど、いろいろ正規表現のお勉強ができたのが収穫かな。ずっと苦手だったのだけど、後方参照なんかも使えるようになると一気にいろいろなことが書けるようになった気がする。何も見なくてもサクサク書けるようになれば最高なのだが、先読み・後読みまでいくと結構チンプンカンプン。

[[0:文字列]] 形式の文字列を探し出して、<img src=”?” alt=”文字列”> や <a href=”?”>文字列</a> へ置換する例。

text.gsub!(/\[\[(\d+):(.+)\]\]/) do
  attachment = post.attachments[$1.to_i]
  if attachment != nil
    if attachment.content_type.include?('image/')
      image_tag attachment.public_filename, :alt => $2
    else
      link_to $2, attachment.public_filename
    end
  else
    '#エラー: 指定した添付ファイルは存在しません'
  end
end

あと、

string[/hoge/] = ‘huga’

で文字列内の hoge を huga に置換できるなんてのは今日はじめて知った。こういった処理は他にもいろいろ書き方はあるけど、この書き方はエレガントで気に入った。

Home > Programming > attachment_fu プラグイン

My Friend Feed

http://friendfeed.com/daruyanagi

Google Analyticator

608
 Unique Visitors 
 (1 day) 
Powered By Google Analytics

Return to page top