3

ここで髪を引っ張っています...なぜこれが機能しないのかわかりません。

ルビー 1.8.7、レール 3.0.19、ペーパークリップ 2.7.4 を使用しています。

私のモデル:

has_attached_file :photo,  :styles => {
:logo => "60x20",
:widget => "60x40",
:thumb=> "100x100",
:small  => "150x150>" },
:url  => "/images/companies/:id/:style/:basename.:extension",
:path => ":rails_root/public/images/companies/:id/:style/:basename.:extension",
:default_url => "/images/bb_noimage.png"

#validates_attachment_presence :photo
validates_attachment_size :photo, :less_than => 3.megabytes
validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png','image/gif','image/jpg']

ビューで:

<%= image_tag "#{get_image_url(company.id,company.photo_file_name,"small")}"%>

問題は、一部のフォルダが「大」および「サム」サイズを持ち、「小」および「ロゴ」サイズを持たないことです。長い間使用していなかったこのサイトを再訪しています。不足しているスタイルを生成したい。これらのコマンドを試してみましたが、最初のコマンドではエラーは表示されませんが、2 番目のコマンドでは以下のエラーが表示されます。必要なサムネイルを生成しません。ご協力ありがとうございました!

bundle exec rake paperclip:refresh:thumbnails CLASS=Company
bundle exec rake paperclip:refresh:missing_styles --trace

** Execute paperclip:refresh:thumbnails
rake aborted!
No such file or directory - /Users/q/Sites/baiabase-old/public/system/paperclip_attachments.yml
/Users/q/.rvm/gems/ruby-1.8.7-p302@baia-old/gems/paperclip-2.7.4/lib/paperclip/missing_attachment_styles.rb:25:in `initialize'
4

2 に答える 2

1

モデルに追加

    attr_accessible :photo, :photo_file_name

    has_attached_file :photo,  :styles => {.....
....your code...

とビューで

<%= image_tag @company.photo.url(:small) %>
于 2013-01-22T23:25:20.217 に答える
-1

さらにあなたへの贈り物として、それは

元の 512x512 ピクセルの写真の方が優れているため、サーバー上のハード ドライブのスペースが少なくなります。

スタイルを追加する :original => "512x512", と、すべての添付写真がこの解像度に最大変換され、ハード ドライブのスペースを節約できます。

:less_than => 3.megabytes:less_than => 5.megabytes ユーザーが 3 MB を超える写真を添付し​​ようとしても添付できない場合は、5 MB に変更します 。

ユーザーは解像度が 3000 x 3000 以上 (<= 5 mb) の写真を追加できますが、すべてスムーズに 512 x 512 ピクセルに変換され、重量は 20 KB 以下になります。

添付されたすべての写真をjpg(形式)に変換したい場合は、これを試してください :thumb => {:geometry => '100x100#', :format => :jpg},

'100x100#'アスペクト比 4:3と アスペクト比 16:9に注意して'100x100>'ください。

于 2013-01-23T00:11:15.063 に答える