QA@IT

attachment-fu でサムネイル画像を一覧で表示したい

2031 PV

Rails2.3 + attachment-fu です(古くてスミマセン)

画像一覧を表示したいのですが、表示用の action を用意しないといけないのが煩わしいです。
「Railsレシピブック 183の技」を参考にすると

  <%= tag("img", :src => url_for(:controller => :entries, :action => :show_photo, :id => @entry.id) %>

となっています。
理解は出来るのですが、もう少し簡単な方法は無いでしょうか?
どうしても以下のような書き方が望ましいと思うのですが…。

# 全画像一覧
<% Photo.all.each do |photo| %>
  <%= image_tag photo.thumbnail %><%# ← これでは動かない。けどこんな感じで記述したい %>
<% end %>

# send_data を使わないといけない以上、仕方ないのかな?

回答

<%= image_tag photo.public_filename(:thumb) %>

で表示されないでしょうか?

https://github.com/technoweenie/attachment_fu

の、attachment_fu viewsの節あたりに解説があります。


database storage の場合なんですね。
確かに、databaseの場合はpublic_filenameメソッド自体がないので上記の方法は
とれません。

一応、レンダリング時に自力でファイルにはきだして、そのパスを渡す
という方法もなくはないですが、ファイル作成のオーバーヘッドを考える
と、素直にaction作ってsend_dataで直接データを流しこむのが一番いいと
思います。

編集 履歴 (1)
  • すみません、書き忘れていた事がありました。
    データの保存先を「database storage」にしています。
    そのせいで(!?)、 public_filename メソッドが存在しないようです(>_<)
    -
  • 返事遅れてすみません。通知メールが来なくて気付きが遅れました。
    そうですね。action 作って send_data で流し込む事にします。
    ありがとうございました。
    (QA@IT ではコメントに対しては通知来ない模様)
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。