using paperclip
投稿者 okkez
thoughtbot’s paperclip at master - GitHub を使ってみた。
あるモデルにカラムを追加して使う方法の場合は Home - paperclip - GitHub をよく読んで使えば問題なさそうだった。
一つのレコードに複数の添付ファイルを持たせる場合に少しハマったので書いておく。
class Issue < ActiveRecord::Base
has_many :attachments, :class_name => "::Attachment", :dependent => :destroy
endclass Attachment < ActiveRecord::Base
belongs_to :issue
has_attached_file :attachment
endこのようなクラス構成の場合、Attachment というモデルは paperclip で定義している Paperclip::Attachment と名前が 被るので Issue の定義で注意する必要がある。 上で書いているように、:class_name オプションに「フルパス」でモデルのクラス名を書いておけば良い。
あと paperclip では xxx_{file_name,content_type,file_size,updated_at} というカラムを用意すると、 モデルに xxx という名前のメソッドが定義されるので xxx の部分を長くしすぎるとちょっとコードが読みづらくなる。
実際に Attachment モデルに attachment_* という名前でカラムを用意したので以下のようなコードが頻出して気持ち悪くなったことがある。
link_to @attachment.attachment_file_name, @attachment.attachment.url
Attachment クラスでエイリアスを定義しておけば多少はマシになるかと思う。


