Quelque chose ne s'additionne pas sérieusement ici .. Ma page vient de rafraichir, rien ne se passe, elle ne touche jamais aucun de mes débogueurs traîner sur toutes mes méthodes sauf pour l'index.Comment le supprimer correctement?
mon html:
<%- for image in @images %>
<%= image.attachment_file_name %>
<%-# link_to_delete image, :url => destroy_image_admin_wysiwyg_path(image.id) %>
<%= link_to 'delete', { :url => destroy_image_image_path(image.id) },
#:confirm => 'Are you sure?',
:post => true
%>
<br />
<% end %>
mon contrôleur
def destroy_image
debugger
@img = Image.find(params[:id])
@img.destroy
respond_to do |format|
format.html { redirect_to admin_image_rotator_path }
end
end
Mes itinéraires:
map.resources :images, :member => { :destroy_image => :post }
Mon hack répugnant qui fonctionne que je vais remplacer dès que je trouve quelque chose de mieux
J'ai déplacé l'action sur un contrôleur plus simple, je me suis construit.
mes itinéraires à Changé:
admin.resources :wysiwygs, :member => { :destroy_image => :post }
mon html Changé:
<%= link_to 'delete', :controller => "wysiwygs", :action => "destroy_image" %>
Mais quand je clique sur le link..it fait monter l'action .. show
?? fffffffffuuuuuuu
Je riposté en déplaçant simplement mon action à l'action du spectacle, et passer un champ caché dans mon html ..
<%= link_to 'delete', :controller => "wysiwygs", :action => "destroy_image", :hidden_field => {:value => image.id} %>
def show
# this was previously in destroy_image
@img = Image.find(params[:hidden_field][:value])
@img.destroy
respond_to do |format|
format.html { redirect_to admin_image_rotator_path }
end
end
Peut-être qu'un 'before_filter' empêche-t-il l'action d'être atteinte? En outre, c'est une approche inhabituelle - l'utilisation de GET pour supprimer est généralement considérée comme imprudente. – zetetic
': post => true' ne semble pas correct. Avez-vous essayé ': method =>: post'? – zetetic
Oui .. essayé. J'utilise spree et oui il y a une charge before_filter compliquée, donc j'ai essayé d'échanger avec certains de mes contrôleurs plus simples mais ça produit la même erreur. – Trip