【发布时间】:2018-09-28 12:33:34
【问题描述】:
我有两个模型,服务和照片。在服务模式下,belongs_to :user 和 has_many :photos 和 has_many_attached :images。
根据照片模型 belongs_to :service
在照片查看器下,我尝试显示与每个服务关联的图像。
当我尝试删除图像时,我收到了一个无法找到带有 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
路线:
service_photos POST /services/:service_id/photos(.:format)photos#create
service_photo DELETE /services/:service_id/photos/:id(.:format) photos#destroy
【问题讨论】:
-
您能否运行
rake routes并向我们展示这些模型的相关路线? -
service_photos POST /services/:service_id/photos(.:format)photos#create service_photo DELETE /services/:service_id/photos/:id(.:format) photos#destroy
-
如我所料,您应该使用
params[:id]而不是params[:_id]请参阅下面的答案部分中的答案,如果对您有帮助,请将其标记为正确:)
标签: ruby-on-rails paperclip rails-activestorage