2010-12-11 20 views
31

Ok, me estoy enseñando a mí mismo RoR mientras desarrollo una interfaz web api &. He estado siguiendo una serie de guías y probando diferentes resultados. Me he burlado de algunas plantillas HTML y estoy en el proceso en el que estoy empezando a desglosarlas en vistas.Ruby on Rails - link_to button/css

En mi HTML tengo el siguiente código, que es un botón con un estilo CSS:

<input type="submit" name="" value="Add" id="open-contacts-dialog-btn" class="inbox-sf-add-btn tip" title="Open an dialog to add a new contact"/> 

Ésta es mi botón en mi panel que me gustaría enlazar con el /libro/nueva/ , Sé que necesito un link_to aquí, pero ¿cuál sería mi código final? El código que he tratado es el siguiente

<%= link_to "Add", new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %> 

Pero no es la adición de mi estilo CSS, se acaba generando el texto "Añadir". Cualquier ayuda sería útil. Gracias

Respuesta

63

link_to genera una etiqueta <a>, que no es input type="submit". Lo que debe utilizar debe ser un button_to, que genera un formulario con un botón input type="submit" al enlace:

<%= button_to "Add", new_admin_course_path, :id => "open-contacts-dialog-btn", 
     :class => "inbox-sf-add-btn tip", :method => :get %> 

Nota del :method => :get. Sin él, el button_to generará un formulario con el método configurado para publicar.

+4

Esto funciona, gracias. Las personas que implementen Twitter Bootstrap deben tener en cuenta que no se generará ninguna etiqueta

0

Pero no es la adición de mi estilo CSS
¿Qué quiere decir? Se genera el enlace (elemento a) con las clases inbox-sf-add-btn y tip, ¿verdad? ¿Entonces, cuál es el problema?

Si desea estrictamente botón (input elemento en lugar de a), puede especificar /book/new (o <%= new_admin_course_path %>) en el atributo action de su formulario HTML (form elemento).

9

Hace poco tuve que hacer esto porque mi formulario estaba actuando de forma diferente para el enlace_de lo que era con button_to y necesitaba la funcionalidad que proporcionaba el enlace. La mejor solución que encontré no usa CSS en absoluto, sino que llama a .html_safe para escapar del html en el código Ruby y mostrar correctamente el enlace como un botón. Lo que quiere hacer es esto:

<%= link_to "<button>Add</button>".html_safe, new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %> 
+2

Simplemente dejando que otros usuarios de Bootstrap sepan que esto no funcionará con un botón en la barra de navegación ya que coloca el CSS clases en la etiqueta en lugar de la etiqueta