Wenn Sie die Schienen verschachtelt Ressourcen nach der Namenskonvention verwenden,
resources :boats do
resources :images
end
<%= link_to 'Delete Image', [@boat, @image], confirm: 'Are you sure?', method: :delete %>
Diese Anforderungen an den Bilder Controller von den Schienen Weg. Senden der Boot-ID und der Bild-ID.
Aber, wenn Sie wollen ausdrücklich Route, die Steuerung an den Booten,
eine Route in der Steuerung Boote hinzufügen, wie,
delete '/boats/:id' => 'boats#destroy_image', as: :destroy_image(image.id)
senden, um die image_id durch params,
dann in der Steuerung,
class BoatsController < ApplicationController
def destroy_image
@image = Image.find(params[:id])
@boat = @image.boat //do anything you want with the boat object
if @image.destroy
else
// *** ***//
end
respond_to do |format|
format.html { redirect_to list_tasks_path(@task) }
format.json { head :ok }
end
end
end
Die Route, die Sie erwähnt haben, führt Sie also zur Aktion destroy_image im Boot-Controller, auch wenn die Route keine image_id als Abfrage-String enthält, sondern wir senden sie durch params. Das ist die Kraft der Schienen.
Bitte fügen Sie einen Code hinzu, den Sie ausprobiert haben. – Sravan