Rails: ActiveRecord :: RecordNotFound Не удалось найти фотографию без идентификатора - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть две модели, Услуги и Фотографии.В рамках модели услуг принадлежит: пользователь и has_many: фотографии и has_many_attached: images.

В соответствии с моделью фото принадлежит_служба:

В программе просмотра фотографий я пытаюсь отобразить изображения, связанные с каждым сервисом.

При попытке удалить изображение появляется изображение «Не удается найти изображение с ошибкой идентификатора».

Средство просмотра выглядит следующим образом:

<% if @service.images.attached? %>
<br/><br/>

<div class="row">
  <% @service.images.each do |image| %>
    <div class="col-md-4">
      <div class="panel panel-default">
        <div class="panel-heading preview">
          <%= image_tag image %>
        </div>
        <div class="panel-body">
          <span class="pull-right">
            <%= link_to service_photo_path(@photos, image), remote: true, method: 'delete', data: {confirm: "Are you sure?"} do %>
              <i class="fa fa-trash-o" aria-hidden="true"></i>
            <% end %>
          </span>
        </div>
      </div>
    </div>
  <% end %>
</div>
<% end %>

Контроллер фотографийвыглядит так:

class PhotosController < ApplicationController

  def create
    @service = Service.find(params[:service_id])

    if params[:images]
      params[:images].each do |img|
        @service.photos.create(image: img)
    end

    @photos = @service.photos
    redirect_back(fallback_location: request.referer, notice: "Saved...")
  end
end

  def destroy
    @photo = Photo.find(params[:_id])
    service = @photo.service

    @photo.destroy
    @photos = Photo.where(service_id: service_id)

    respond_to :js
  end
end

маршруты:

service_photos POST /services/:service_id/photos(.:format)photos#create 
service_photo DELETE /services/:service_id/photos/:id(.:format) photos#destroy

1 Ответ

0 голосов
/ 28 сентября 2018

Заменить

@photo = Photo.find(params[:_id])

на:

@photo = Photo.find(params[:id])

Я думаю, что вы опечатка!id не _id


Также, на ваш взгляд, замените:

service_photo_path(@photos, image)

на:

service_photo_path(@service, photo)
...