2012-09-18 5 views
17

tengo este pedazo de código:"No hay ruta partidos [mensaje]" cuando se cambia link_to a button_to

<%= link_to "New User", new_user_path, :class => "button" %><br /> 

que funciona muy bien, pero cuando lo cambio a,

<%= button_to "New User", new_user_path, :class => "button" %><br /> 

consigo este error

No hay coincidencias ruta [mensaje] "/ usuarios/nuevos"

Cualquier ayuda será apreciada.

Respuesta

29

Jesús Rodríguez tiene razón sobre la POST y GET, pero si realmente necesita el botón que simplemente puede anular el método por defecto:

<%= button_to "New User", new_user_path, :class => "button", :method => :get %> 
+0

buen trabajo! gracias amigo :) –

19

El "link_to" está buscando un /usuarios/nuevos utilizando GET.

El "button_to" está buscando un /usuarios/nuevos utilizando POSTAL

Si crea las rutas para un controlador usando:

resources :user 

Por defecto, /usuarios/ es una nueva GET y no POSTAL así, la segunda línea no encuentra ninguna ruta.

Si está pensando en cambiar esa acción a POST Creo que debe olvidarse de eso.

3

en lugar de forzar button_to utilizar un método no predeterminado, también puede enviar una clase a link_to.

<%= link_to "New User", new_user_path, :class => "button" %> 
+0

Para agregar a eso, puedes agregar clases a eso para que se vea como un botón (como la respuesta muestra arriba). En mi caso estoy usando bootstrap e hice lo siguiente '<% = link_to" New User ", new_user_path,: class =>" btn btn-default "%>' –

Cuestiones relacionadas