Forum: Rails-ES duda con metodos destroy y delete (Amilcar Glez)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Amilcar González (Guest)
on 2009-04-17 06:51
(Received via mailing list)
Bien tengo en mi photos_controller:

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

    respond_to do |format|
      format.html { redirect_to(photos_url) }
      format.xml  { head :ok }
    end
  end

En mi vista para 'index' tenía:

....
<% for photo in @photos %>
....
  <td>
    <%= h photo.filename %>
    <br />
    <%= link_to 'delete me', {:action => 'destroy',  :id => photo},
:confirm => 'Are you sure?' %>
  </td>
.......

Pero al clicar en delete me no se borraba y me reenviaba a la parte de
'show', entonces hice un cambio y puse en la vista:

....
<% for photo in @photos %>
....
  <td>
    <%= h photo.filename %>
    <br />
    <%= link_to 'delete me', photo, :method => :delete, :confirm => 'Are
you sure?' %>
  </td>

y si funciona perfectamente y no se porque. ¿Alquien me lo
podría explicar?
Ricardo M. (Guest)
on 2009-04-17 07:06
(Received via mailing list)
> <% for photo in @photos %>
> ....
>  <td>
>    <%= h photo.filename %>
>    <br />
>    <%= link_to 'delete me', photo, :method => :delete, :confirm => 'Are
> you sure?' %>
>  </td>
>
> y si funciona perfectamente y no se porque. ¿Alquien me lo podría explicar?

Porque por defecto link_to crea un link comun, que termina en un GET.
Al especificar un :method diferente a GET, se agrega Javascript para
hacer un request por AJAX para tener el efecto deseado.

--
--
Ricardo M.
http://www.gazer.com.ar/
Fernando (Guest)
on 2009-04-17 10:41
(Received via mailing list)
Creo que es por las rutas REST, que cómo no estas utilizando un
heleper REST sino que los estás haciendo "al modo clásico", utiliza el
vervo GET por defecto, lo cual con esa URL le lleva a la
acción"show".
Creo que es esto, pero seguro que los expertos lo sabran mejor que yo,
que estoy aún empollando el tema REST.  ;-)

Te recomiendo este PDF que lo explica muy bien y además en español. Lo
cual simepre es de agradecer:
http://www.google.com/search?ie=UTF-8&oe=UTF-8&sou...

El día 17 de abril de 2009 4:50, Amilcar González 
<removed_email_address@domain.invalid>
escribió:>  end
> :confirm => 'Are you sure?' %>
>    <%= h photo.filename %>
> Ror-es mailing list
> removed_email_address@domain.invalid
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>



--
Fernando V.
Web Designer
http://www.fernandoval.com
Borja Martín (Guest)
on 2009-04-17 13:31
(Received via mailing list)
ojo, que la petición no la hace por ajax si no que monta un formulario
mediante javascript para asignar el método ya sea como un atributo de
éste o
como un campo oculto en el caso del put, pero vamos, que al final es una
petición normal y corriente

On 17/4/09 05:05, Ricardo M. wrote:

 <% for photo in @photos %>
....
 <td>
   <%= h photo.filename %>
   <br />
   <%= link_to 'delete me', photo, :method => :delete, :confirm => 'Are
you sure?' %>
 </td>

y si funciona perfectamente y no se porque. ¿Alquien me lo podría
explicar?


 Porque por defecto link_to crea un link comun, que termina en un GET.
Al especificar un :method diferente a GET, se agrega Javascript para
hacer un request por AJAX para tener el efecto deseado.
Ricardo M. (Guest)
on 2009-04-20 18:44
(Received via mailing list)
2009/4/17 Borja Martín <removed_email_address@domain.invalid>:
> ojo, que la petición no la hace por ajax si no que monta un formulario mediante 
javascript para asignar el método ya sea como un atributo de éste o como un campo oculto 
en el caso del put, pero vamos, que al final es una petición normal y corriente

Si, es verdad, quise decir "javascript" (para hacer notar el hecho de
que si el usuario no lo tiene activo no funciona).

--
--
Ricardo M.
http://www.gazer.com.ar/
This topic is locked and can not be replied to.