2010-02-12 13 views
27

estoy tratando de crear botones ala Wufoo (Rediscovering the button element)¿Hay alguna manera con la forma rieles ayudante para producir una etiqueta botón para enviar

me gusta escribir el siguiente código como el siguiente:

<%form_tag search_path, :method => :get, :class => 'search' do %> 
    <%=text_field_tag :search, params[:search] -%> 
    <%=button_tag 'search', :name => nil-%> 
<%end%> 

para generar el código HTML siguiente (en lugar de la entrada [type = "submit"] tag)

<button type="submit" class="positive"> 
    <img src="/images/icons/tick.png" alt=""/> 
    Save 
</button> 

¿Tiene un método ya existe? ¿O debería lanzar mi propio ayudante?

Respuesta

36

Puede usar content_tag para lograr esto. Es la manera más fácil de hacer lo que quieres. Pero es más largo que el HTML sin formato.

<% content_tag :button :type => :submit, :class => :positive do %> 
    <%= image_tag "icons/tick.png"%> 
    Save 
<% end %> 

que produce

<button type="submit" class="positive"> 
    <img src="/images/icons/tick.png" alt="Tick"/> 
    Save 
</button> 

Sin embargo usando esto como un punto de partida que no debería tener problemas rodando su propio ayudante robusta, o abstraer a una parcial.

+0

¿Cómo podría un ayudante hacer esto más rápido? – TheExit

+1

@ TheExit: Un ayudante no lo haría más rápido. Nunca dije que lo haría, de hecho, la etiqueta de contenido sería más lenta que solo ingresar el html crudo como una cadena. Pero el asistente se presta a una fácil reutilización, lo que lo hace más rápido en términos de tiempo dedicado a escribir código sobre los usos futuros de este tipo de botón. – EmFi

+2

Hice una ayuda llamada "button_tag" y se comporta exactamente como todos los demás raíles forman métodos de ayuda y, como tal, me hace feliz. – jaydel

2

Usted puede utilizar el ayudante image_submit_tag para crear una imagen someter la etiqueta, en lugar de envolver todo el asunto en un botón:

<% 
image_submit_tag("login.png") 
# => <input src="/images/login.png" type="image" /> 

image_submit_tag("purchase.png", :disabled => true) 
# => <input disabled="disabled" src="/images/purchase.png" type="image" /> 

image_submit_tag("search.png", :class => 'search-button') 
# => <input class="search-button" src="/images/search.png" type="image" /> 
%> 

esto podría no ser lo que usted está buscando, si usted requiere el " Guardar "texto para aparecer arriba del <img>

Cuestiones relacionadas