2012-08-16 10 views
6
<%= link_to 'New Post', new_post_path %> 

Esto produce un enlace a new_post_path. Previamente utilicé <input type="submit" class="new" name="Addlist" value="Add New" /> que se parecía a un botón. Entonces, ¿cómo puedo hacer que el enlace se vea como el botón en erb?¿Cómo hacer que un botón funcione como un enlace en erb?

Respuesta

5

Solo para arrojar otra opción porque tenía un escenario donde la opción button_to no funcionaba. Esto se ve algo similar a eso.

<%= link_to '<button type="button">New Post</button>'.html_safe, new_post_path %> 

Lo que básicamente quería es un botón que no se convierta en un presente, ya que tengo varios botones en la página que no están relacionados con una forma, y ​​realmente sólo quiero que sólo tiene que ir a otra página.

+0

Podría ser peligroso en algunas versiones de rieles. Es más apropiado estilizar el enlace para que parezca un botón. Consulte [Rails XSS] (https://github.com/rails/rails_xss) –

+1

Cuando valida este marcado utilizando http://validator.w3.org/ obtendrá un error: ** El botón del elemento no debe aparecer como un descendiente del elemento a. ** no se permite poner un botón dentro de un enlace ...! Pruébelo usted mismo: copie el texto de: https://gist.github.com/nelsonic/7986797 y péguelo en el validador. – nelsonic

8

Eche un vistazo a button_to. En resumen, será del mismo tipo que esto:

<%= button_to "New Post", { :action => "new" }, :method => :get %> 

A pesar de ser consciente, este método acepta los :method y :confirm modificadores descritos en la documentación link_to. Si no se proporciona el modificador :method, realizará de manera predeterminada una operación POST. También puede desactivar el botón pasando :disabled => true en html_options. Si está utilizando rutas RESTful, puede pasar el :method para cambiar el verbo HTTP utilizado para enviar el formulario.

5

@ respuesta de Ryan es bueno, pero por desgracia no validación HTML error http://validator.w3.org/

: El botón de elemento no debe aparecer como un descendiente del elemento.

Por qué no basta con aplicar un (CSS) clase a su enlace y hacer que aparezca como un botón.

erb:

<%= link_to "Button Text", new_post_path, class: 'button' %>

produce (válida & semántica) HTML:

<a class="button" href="/post/new">Button Text</a>

que luego se puede estilo a mirar como un botón.

Ejemplo: http://jsfiddle.net/nelsonic/FQK9M/7/

Cuestiones relacionadas