2011年8月28日日曜日

rails typusでpaperclipを使って画像を扱ってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

データ管理画面用のgem typusを使っているのですが
画像をアップロードしてサムネイルと表示させようとして
ちょっとはまってしまったのでメモ
(あとから考えると設定は非常に簡単だった・・・)

ここ参考しました
https://github.com/typus/typus/wiki/configuration-resources


バージョンは
ruby1.9
rails3.0
(typusはrails3.1推奨らしいが3.0でもできた)

gem typus
gem  paperclip
ともにインストールされていて
モデルPhotoimageが作成されているとする
そしてそのモデルに
rails g paperclip photoimagephoto
されて画像用のカラムが追加されているとする
この辺は以下を参照
rails 画像アップロード paperclipを試してみた


ここから作業

・モデルに 以下のように記述
class Photoimage < ActiveRecord::Base
  has_attached_file :photo, :styles => {:medium => "x450",:thumb => "150x150#"}
end

関連付けのためのhas_attached_fileの定義と
サムネイル用のスタイルとしてmediumとthumbの変数名でサイズを定義してやる。
デフォルトでこの名前らしい。
この名前が大事みたいで、名前を変える場合はconfigのtypus.rbで変更する。
  # Define paperclip attachment styles.
   #config.file_preview = :medium
   #config.file_thumbnail = :thumb


・config/typusの表示部分のapplication.ymlの変数名をhas_attached_fileした変数名と同じもの変えてやる
fields:
    default: photo
    list: photo

で、adminページ側からnewで画像をcreateすると
ちゃんとpaperclipのサムネイルが表示させることができた。









この仕組みがわからずちょっとはまってしまいました。
わかってしまえば設定が簡単でいいね。


あと、画像をクリックしたらプレビュー画面を表示させるために
gem 'jquery-rails' してやったらイイ感じになりました。



0 件のコメント:

コメントを投稿