我几个小时都在苦苦挣扎。在某些背景下,我设置了回形针,请记住我有一天可能想要添加多个附件。我按照艾默生的截屏视频来帮助我搞清楚。 (http://www.emersonlackey.com/article/paperclip-with-rails-3) 我现在在我的视图中有这个,它显示了我想要它显示的内容。我很长时间遇到了麻烦,因为当某些帖子没有缩略图时,它会引发错误。 无论如何,写道,它在我看来,我只是认为它真的很难看。我觉得我必须遗漏一些东西。首先,我在一条线上完全重复自己。其次,我在我看来有这个代码。我应该在控制器中做些什么来帮助我保持清洁视野?
非常感谢!
<% 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
答案 0 :(得分:1)
所以你的问题是,有时一件有缩略图,有时却不是,对吗?
我同意你的ERB解决方案闻起来很糟糕。您可以在Piece:
中添加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 %>