2011-08-05 12 views
0

私はこれを何時間も苦労してきました。いくつかの背景のために、私はいつか複数の添付ファイルを追加したいかもしれないことに留意して、ペーパークリップをセットアップしました。エマソンのスクリーンキャストをたどって、それを理解するのを助けました。 (http://www.emersonlackey.com/article/paperclip-with-rails-3) 私はこれを私の見解で示しています。これは私が見たいものを示しています。サムネイルがいくつかの投稿に存在しなかったときにエラーが発生したので、私は長い間困っていました。とにかく、書きました、それは私の見解ですが、私はそれが本当に醜いと思っています。私は何かが欠けているように感じる。一つのこととして、私は完全に1つの行に自分を繰り返す。二次的に、私は私の考えでこのコードを持っています。私は私のビューをきれいに保つのを助けるために私のコントローラーでやっているべきことがありますか?index.html.erbでクリップクリップのサムネイルを取得するより良い方法

ありがとうございました!

<% if Asset.where(:piece_id => piece.id).first 
      my_asset = Asset.where(:piece_id => piece.id).first%> 
      <%= piece.id%> 
      <%= image_tag my_asset.asset.url(:thumb)%> 
    <% end%> 

私はコントローラに何も言わなかったので、そのコードをすべて残しています。

class Asset < ActiveRecord::Base 
    belongs_to :piece 
    has_attached_file :asset, :styles => {:large => ['700x700', :jpg], :medium => ['300x300>', :jpg], :thumb => ["100x100>", :jpg]} 
end 

class Piece < ActiveRecord::Base 
    attr_accessible :assets_attributes,:name, :campaign_id,:election_date, :mail_date, :pdf_link, :photo_desc, :photo_stock, :killed, :format, :artist 
    belongs_to :client 
    has_many :assets 
    accepts_nested_attributes_for :assets, :allow_destroy => true 
    validates :campaign_id, :presence => true 
end 

答えて

1

右、だからあなたの問題は時々ワンピースは、サムネイルを持っていることで、時にはそれがない

資産:しかし、ここで私のモデルがどのように見えるかですか?

あなたのERBソリューションの匂いが悪いことに同意します。あなたはワンピースにthumb_nail_url方法追加することができます。

def thumb_nail_url 
    asset = assets.first 
    asset ? asset.asset.url(:thumb) : nil 
end 

をそして:

<% thumb_url = piece.thumb_nail_url %> 
<% if thumb_url %> 
    <%= image_tag thumb_url %> 
<% end %> 

をあなたはまた、ヘルパーに上記をラップすることができます:

def piece_thumb_image_tag(piece) 
    thumb_url = piece.thumb_nail_url 
    thumb_url ? image_tag(thumb_url) : '' 
end 

、その後:

<%= piece_thumb_image_tag piece %> 
+0

うーん、私はこのソリューションがはるかに良い。ありがとうございました!私はそれを撃つつもりだ! – counterbeing

関連する問題