2010-11-21 25 views
5

Tengo un bloque -itrador para mostrar a un usuario y una acción relacionada que se mostrará en la misma línea para cada iteración?
Puede visualizar la siguiente manera: -Rieles: ¿Cómo hacer que el botón "button_to" aparezca en la misma línea (sin una nueva línea)?

user1 update_attribute_button 
user2 update_attribute_button. 
... 
and so on. 

Pero si uso un método button_to el botón es cada vez que aparece en una nueva línea. lo cual no want.heres mi fragmento de código: -

<% @post.bids.each do |bid| %> 
<p> 
<%= bid.user.email %> 
<%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid"> 
</p> 
<% end %> 

Pero con el código por encima de la 'e-mail' y 'oferta oferta' están apareciendo en dos líneas, pero quiero mostrarlas como pares, con cada par aparece en una línea.

Lo puedo lograr usando un 'link_to'.
Si uso 'link_to' en lugar de 'button_to' puedo lograr mi idea, pero no puedo hacerlo con un button_to. ¿Por qué esta diferencia entre link_to y button_to.
Quiero mostrar la 'oferta de oferta' solo como un botón.
Ahora, cómo hacer que button_to buttin aparezca en la misma línea que el 'email'.

Háganme saber si la descripción de la pregunta no es clara. Gracias de antemano.

Respuesta

9

Un button_to genera un formulario y un div alrededor del botón. Entonces, si no restringe el ancho del contenedor que está antes del botón, tomará el 100% del ancho presionando el botón.

 
<% @post.bids.each do |bid| %> 
    <p> 
    <div style="float: left; width: auto;"><%= bid.user.email %></div> 
    <%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid" %> 
    </p> 
<% end %> 
+0

También trabajó para mí. ¡¡Gracias!! –

3

Esto no tiene que ver con los rieles, sino más bien con la forma en que se forma el navegador web.

Un button_to es solo una manera conveniente de crear un formulario con un campo no visible. Si desea que el formulario esté en la misma fila que la dirección de correo electrónico, deberá colocarlo en un contenedor, generalmente un div, configure el div para que flote a la izquierda y desborde oculto.

0

button_to presta a una etiqueta de formulario, por lo que sólo alteraron el CSS para asegurar la etiqueta de formulario no crea una nueva línea.

Pero para aplicarlo solo a una etiqueta de formulario específica, entonces agregue form_class: "myButton" a continuación.

En su something.html.erb

<%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid", form_tag: "myButton> 

poner esto en su application.css

myButton { 
    display: inline; 
} 
Cuestiones relacionadas