我正在根据id
在数据库表中搜索对象:
def edit
@attachments = Attachment.where(item_id: @item.id)
end
在视图中,我试图像这样拒绝no-image.jpg
图像:
<% @attachments.reject { |attachment| attachment.image.file.identifier == "no-image.jpg" }.each do |attachment| %>
<%= image_tag(attachment.image.url(:mini))%>
<%= link_to "Remove", remove_item_attachment_path(attachment), :data => {:confirm => 'Are you sure?'}, :method => :delete %>
<% end %>
现在,即使文件no-image.jpg
在我调试时存在于循环中,它也会产生以下错误:
NoMethodError in Items#edit
undefined method `identifier' for #<CarrierWave::Storage::Fog::File:0x007fb193633520>
错误位于以下行中:
<% @attachments.reject { |attachment| attachment.image.file.identifier == "no-image.jpg" }.each do |attachment| %>
任何想法如何解决这个问题?
看到你也写attachment.image.url
我假设image
是图像存储在Attachment
类中的字段,所以在这种情况下你应该写
attachment.image.identifier
我认为attachment.image_identifier
也是可能的。