Rails перебирает таблицу базы данных и отклоняет один объект по имени - PullRequest
0 голосов
/ 23 мая 2018

Я ищу объекты в таблице базы данных в соответствии с 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| %>

Есть идеи, как мне это исправить?

1 Ответ

0 голосов
/ 23 мая 2018

Видя, что вы также пишете attachment.image.url Я предполагаю, image - это поле, в котором изображение хранится внутри класса Attachment, поэтому в этом случае вам просто нужно написать

attachment.image.identifier 

Я думаю attachment.image_identifier также возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...