Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:ActiveRecord::RecordNotFound找不到没有ID的照片_Ruby On Rails_Paperclip_Rails Activestorage - Fatal编程技术网

Ruby on rails Rails:ActiveRecord::RecordNotFound找不到没有ID的照片

Ruby on rails Rails:ActiveRecord::RecordNotFound找不到没有ID的照片,ruby-on-rails,paperclip,rails-activestorage,Ruby On Rails,Paperclip,Rails Activestorage,我有两个模型,服务和照片。在服务模式下属于:用户,有多张:照片和多张附加的:图像 照片下的模型属于:服务 在照片查看器下,我试图显示与每个服务相关的图像 尝试删除图像时,我收到一个ID错误的“找不到图像” 查看器如下所示: <% if @service.images.attached? %> <br/><br/> <div class="row"> <% @service.images.each do |image| %>

我有两个模型,服务和照片。在服务模式下属于:用户,有多张:照片和多张附加的:图像

照片下的模型属于:服务

在照片查看器下,我试图显示与每个服务相关的图像

尝试删除图像时,我收到一个ID错误的“找不到图像”

查看器如下所示:

<% 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
替换

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

我想你有打字错误!id不是\u id

此外,在您看来,请替换:

service_photo_path(@photos, image)
与:


您可以运行rake路由并向我们显示这些模型的相关路由吗?service_photos POST/services/:service_id/photos.:formatphotoscoreate service_photo DELETE/services/:service_id/photos/:id.:format photodestruction如我所料,您应该使用params[:id]而不是params[:\u id]请参阅下面答案部分中的我的答案,如果它确实对您有帮助,请将其标记为正确:现在错误更改为ActiveRecord::RecordNotFound找不到具有“id”的照片=10@klasarn,我已经更新了答案,并做了额外的更改:请关注并反馈!你需要弄清楚怎么拍这张照片。。你正在混合使用照片和图像。当我使用照片而不是图像时,我得到错误未定义的局部变量或方法。我知道我在混合使用照片和图像,因为我必须从回形针切换到activestorage…路由和控制器显示您正在处理照片。然后你传递一个图像!!在您看来,您需要使用@service.photos而不是@service.images。您需要决定什么是照片、什么是图像以及如何使用它们!!当图像需要照片时,无法将其传递给服务\u photo\u路径。
@photo = Photo.find(params[:id])
service_photo_path(@photos, image)
service_photo_path(@service, photo)